Wyjaśnij pojęcie ręcznego zatwierdzania w Kafka
Golang
Jak dane są przechowywane w bazie danych?
Czy masz do mnie pytania?
Czym różni się HAVING od WHERE?
Dlaczego musimy przerwać kontekst w strukturze? Dlaczego kończymy workery? Chcemy przerwać metodę Stop.
Czy piszesz dużo asynchronicznego kodu w swojej obecnej pracy?
Co się dzieje z buforem, gdy goroutine piszące zostaną zablokowane?
Co się działo, jeśli usługa się zawieszała i nie odczytywała wiadomości z Kafka?
Dodajesz WaitGroup, do czego?
Jak konsument zatwierdza offset w różnych trybach?
Jak zrobić strukturę danych generyczną (działającą z dowolnym typem wartości) w Go?
Indeksy złożone – co najpierw ustawiać: równość czy zakres?
Różnica między maszyną wirtualną a kontenerem
Czym różni się RIGHT JOIN od innych JOIN? Czym jest CROSS JOIN?
Opowiedz mi o CQRS
Jakie inne percentyle używałeś?
Dlaczego wybraliście Kafka zamiast innych systemów komunikacyjnych (RabbitMQ, NATS)?
// Napisać asynchronicznego obsługiwacza zadań jako bibliotekę // Klient przekazuje obiekt (Task) z danymi do wykonania zadania, // w naszym przykładzie użyjemy pustej struktury. // Obsługiwacz może jednocześnie obsługiwać nie więcej niż N zadań, // i nie więcej niż X zadań może być umieszczonych w kolejce do przetwarzania. // Jeśli nie ma miejsca w kolejce, od razu zwracamy klientowi błąd. // Zadanie jest pobierane do przetwarzania, jeśli dostępni są wolni obsługiwacze. // Symulujemy czas trwania przetwarzania za pomocą time.Sleep(5*time.Second). // Gdy jedno zadanie się zakończy, pobieramy następne z kolejki. // Jeśli kolejka jest pusta, czekamy na nowe zadania od klientów. // Z gwiazdką: rozbudować strukturę Task i uzyskać statusy zadań przez osobne zapytanie.
Jak dodać kontekst do metody Stop, aby można było przerwać oczekiwanie na wykonanie zadań z limitem czasu?
Dlaczego zdecydowałeś się na utworzenie osobnej metody Start do uruchamiania workerów?