E-mail i SMS transakcyjne
Wiadomości rejestracyjne, potwierdzenia i resetów są kolejkowane przez aplikację webową i wysyłane przez pulę workerów.
Kolejki FIFO, które nie gubią zadań, gdy worker padnie, z producentami i konsumentami działającymi równolegle.
Każda usługa dodaje pracę, nie czekając na konsumentów.
Animowany przegląd z prawdziwymi poleceniami HotKV i przykładowymi odpowiedziami. Kliknij dowolny krok, aby do niego przejść. Polecenia i odpowiedzi pozostają po angielsku, dokładnie tak, jak je wpisujesz i widzisz w HotKV.
Praca w tle, jak e-maile, zmiana rozmiaru obrazów i webhooki, potrzebuje kolejki między kodem, który ją tworzy, a kodem, który ją wykonuje. Kolejka, która gubi zadanie, gdy worker ulegnie awarii w trakcie, jest gorsza niż brak kolejki, bo nikt nie zauważa, że zadania nie ma.
Listy dają prostą kolejkę FIFO. BLMOVE przenosi każde zadanie na listę przetwarzania w chwili przekazania workerowi, więc zadanie w toku jest zawsze gdzieś zapisane, jeśli worker zniknie. Producentów i konsumentów obsługują równoległe wątki robocze.
Każda usługa dodaje pracę, nie czekając na konsumentów.
LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"BLMOVE blokuje do pojawienia się zadania, a potem przenosi je na listę przetwarzania w jednym kroku.
BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0E-mail wyszedł. Zadanie jest usuwane z listy przetwarzania.
LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"Worker 2 pada w trakcie zadania. Jego zadanie nadal jest na liście przetwarzania, nie zginęło.
LRANGE queue:emails:processing 0 -1Monitor przenosi porzucone zadanie z powrotem do kolejki, a inny worker je podejmuje.
LMOVE queue:emails:processing queue:emails LEFT RIGHTWiadomości rejestracyjne, potwierdzenia i resetów są kolejkowane przez aplikację webową i wysyłane przez pulę workerów.
Przesłane pliki są kolejkowane do generowania miniatur i transkodowania, a transkoder, który ulegnie awarii, nigdy nie gubi pliku.
Wychodzące webhooki są kolejkowane i ponawiane bez blokowania żądania, które je wywołało.
LPUSH z BRPOP, a workery śpią do nadejścia pracy.
LPUSHBRPOPBLMOVE atomowo przekazuje każde zadanie na listę przetwarzania.
BLMOVELREMProducentów i konsumentów obsługują równoległe wątki robocze.
Dla potwierdzeń, grup konsumentów i odtwarzania użyj strumieni.
XADDXREADGROUPJeśli przejmujesz zadania przez BLMOVE, zadanie leży na liście przetwarzania. Monitor może przenieść wszystko, co leży tam za długo, z powrotem do kolejki.
Nie. BRPOP i BLMOVE blokują do nadejścia zadania, z opcjonalnym limitem czasu.
Listy to najprostsza kolejka. Strumienie dodają grupy konsumentów, potwierdzenia dla każdej wiadomości i historię. Zobacz przypadek użycia strumieniowania zdarzeń.
HotKV mówi protokołem Redis, więc możesz skierować na niego istniejącego klienta i uruchomić te same polecenia.