E-mail și SMS tranzacționale
Mesajele de înscriere, de chitanță și de resetare sunt puse în coadă de aplicația web și trimise de un grup de workeri.
Cozi FIFO care nu pierd joburi când un worker se oprește, cu producători și consumatori care rulează în paralel.
Orice serviciu adaugă muncă fără să aștepte consumatorii.
O demonstrație animată cu comenzi HotKV reale și răspunsuri de exemplu. Faceți clic pe orice pas pentru a sări la el. Comenzile și răspunsurile rămân în engleză, exact așa cum le tastați și le vedeți în HotKV.
Munca în fundal, precum e-mailurile, redimensionarea imaginilor și webhook-urile, are nevoie de o coadă între codul care o creează și codul care o execută. O coadă care pierde un job când un worker se oprește brusc în mijlocul sarcinii este mai rea decât lipsa cozii, pentru că nimeni nu observă că jobul a dispărut.
Listele vă oferă o coadă FIFO simplă. BLMOVE mută fiecare job pe o listă de procesare în momentul în care este predat unui worker, deci un job în curs este mereu stocat undeva dacă workerul dispare. Producătorii și consumatorii sunt serviți de thread-uri de lucru paralele.
Orice serviciu adaugă muncă fără să aștepte consumatorii.
LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"BLMOVE blochează până apare un job, apoi îl mută pe o listă de procesare într-un singur pas.
BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0E-mailul a plecat. Jobul este eliminat din lista de procesare.
LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"Workerul 2 se oprește în mijlocul unui job. Jobul lui este încă în lista de procesare, nu este pierdut.
LRANGE queue:emails:processing 0 -1Un monitor mută jobul abandonat înapoi în coadă, iar alt worker îl preia.
LMOVE queue:emails:processing queue:emails LEFT RIGHTMesajele de înscriere, de chitanță și de resetare sunt puse în coadă de aplicația web și trimise de un grup de workeri.
Încărcările sunt puse în coadă pentru miniaturi și transcodare, iar un transcoder oprit brusc nu scapă niciodată un fișier.
Webhook-urile de ieșire sunt puse în coadă și reîncercate fără să blocheze cererea care le-a declanșat.
LPUSH cu BRPOP, iar workerii dorm până sosește munca.
LPUSHBRPOPBLMOVE predă atomic fiecare job unei liste de procesare.
BLMOVELREMProducătorii și consumatorii sunt serviți de thread-uri de lucru paralele.
Pentru confirmări, grupuri de consumatori și reluare, folosiți streamuri.
XADDXREADGROUPDacă preluați joburile cu BLMOVE, jobul rămâne în lista de procesare. Un monitor poate muta înapoi în coadă orice a stat acolo prea mult.
Nu. BRPOP și BLMOVE blochează până sosește un job, cu un timeout opțional.
Listele sunt cea mai simplă coadă. Streamurile adaugă grupuri de consumatori, confirmare pe mesaj și istoric. Vedeți cazul de utilizare Streaming de evenimente.
HotKV vorbește protocolul Redis, așa că puteți îndrepta spre el un client existent și rula aceleași comenzi.