Email e SMS transazionali
I messaggi di registrazione, ricevuta e reimpostazione vengono messi in coda dall'app web e inviati da un pool di worker.
Code FIFO che non perdono job quando un worker muore, con producer e consumer in parallelo.
Qualsiasi servizio aggiunge lavoro senza aspettare i consumer.
Una dimostrazione animata con comandi HotKV reali e risposte di esempio. Clicca su un passo qualsiasi per andarci. Comandi e risposte restano in inglese, esattamente come li digiti e li vedi in HotKV.
Il lavoro in background come email, ridimensionamento di immagini e webhook ha bisogno di una coda tra il codice che lo crea e il codice che lo esegue. Una coda che perde un job quando un worker si blocca a metà è peggio di nessuna coda, perché nessuno si accorge che il job è sparito.
Le liste ti danno una semplice coda FIFO. BLMOVE sposta ogni job in una lista di elaborazione nel momento in cui viene consegnato a un worker, quindi un job in corso è sempre salvato da qualche parte se quel worker scompare. Producer e consumer sono serviti da thread worker paralleli.
Qualsiasi servizio aggiunge lavoro senza aspettare i consumer.
LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"BLMOVE resta in attesa finché un job è disponibile, poi lo sposta in una lista di elaborazione in un solo passo.
BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0L'email è partita. Il job viene rimosso dalla lista di elaborazione.
LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"Il worker 2 muore a metà job. Il suo job è ancora nella lista di elaborazione, non perso.
LRANGE queue:emails:processing 0 -1Un monitor riporta il job abbandonato nella coda e un altro worker lo prende.
LMOVE queue:emails:processing queue:emails LEFT RIGHTI messaggi di registrazione, ricevuta e reimpostazione vengono messi in coda dall'app web e inviati da un pool di worker.
I caricamenti vengono messi in coda per miniature e transcodifica, e un transcoder che si blocca non perde mai un file.
I webhook in uscita vengono messi in coda e ritentati senza bloccare la richiesta che li ha generati.
LPUSH con BRPOP, e i worker dormono finché non arriva lavoro.
LPUSHBRPOPBLMOVE consegna ogni job a una lista di elaborazione in modo atomico.
BLMOVELREMProducer e consumer sono serviti da thread worker paralleli.
Per conferme, consumer group e replay, usa gli stream.
XADDXREADGROUPSe prendi i job con BLMOVE, il job resta nella lista di elaborazione. Un monitor può riportare in coda tutto ciò che è rimasto lì troppo a lungo.
No. BRPOP e BLMOVE restano in attesa finché arriva un job, con un timeout opzionale.
Le liste sono la coda più semplice. Gli stream aggiungono consumer group, conferma per singolo messaggio e cronologia. Vedi il caso d'uso sullo streaming di eventi.
HotKV parla il protocollo Redis, quindi puoi puntarci un client esistente ed eseguire questi stessi comandi.