Transactionele e-mail en sms
Aanmeldings-, ontvangst- en resetberichten worden door de webapp in de wachtrij gezet en door een pool workers verstuurd.
FIFO-wachtrijen die geen jobs verliezen wanneer een worker sterft, met producers en consumers die parallel draaien.
Elke service voegt werk toe zonder op consumers te wachten.
Een geanimeerde walkthrough met echte HotKV-commando's en voorbeeldantwoorden. Klik op een stap om ernaartoe te springen. Commando's en antwoorden blijven Engels, precies zoals je ze in HotKV typt en ziet.
Achtergrondwerk zoals e-mails, het verkleinen van afbeeldingen en webhooks heeft een wachtrij nodig tussen de code die het maakt en de code die het uitvoert. Een wachtrij die een job verliest wanneer een worker halverwege crasht, is erger dan geen wachtrij, want niemand merkt dat de job weg is.
Lijsten geven je een eenvoudige FIFO-wachtrij. BLMOVE verplaatst elke job naar een verwerkingslijst op het moment dat hij aan een worker wordt gegeven, zodat een job in uitvoering altijd ergens is opgeslagen als die worker verdwijnt. Producers en consumers worden bediend door parallelle workerthreads.
Elke service voegt werk toe zonder op consumers te wachten.
LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"BLMOVE blokkeert totdat er een job beschikbaar is en verplaatst hem dan in één stap naar een verwerkingslijst.
BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0De e-mail is verstuurd. De job wordt uit de verwerkingslijst verwijderd.
LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"Worker 2 sterft halverwege een job. Zijn job staat nog in de verwerkingslijst, niet verloren.
LRANGE queue:emails:processing 0 -1Een monitor zet de verlaten job terug in de wachtrij en een andere worker pakt hem op.
LMOVE queue:emails:processing queue:emails LEFT RIGHTAanmeldings-, ontvangst- en resetberichten worden door de webapp in de wachtrij gezet en door een pool workers verstuurd.
Uploads staan in de wachtrij voor het maken van thumbnails en transcoderen, en een gecrashte transcoder laat nooit een bestand vallen.
Uitgaande webhooks worden in de wachtrij gezet en opnieuw geprobeerd zonder het verzoek te blokkeren dat ze veroorzaakte.
LPUSH met BRPOP, en workers slapen totdat er werk binnenkomt.
LPUSHBRPOPBLMOVE geeft elke job atomair door aan een verwerkingslijst.
BLMOVELREMProducers en consumers worden bediend door parallelle workerthreads.
Gebruik streams voor bevestigingen, consumer groups en replay.
XADDXREADGROUPAls je jobs claimt met BLMOVE, staat de job in de verwerkingslijst. Een monitor kan alles wat er te lang staat terugzetten in de wachtrij.
Nee. BRPOP en BLMOVE blokkeren totdat er een job binnenkomt, met een optionele time-out.
Lijsten zijn de eenvoudigste wachtrij. Streams voegen consumer groups, bevestiging per bericht en geschiedenis toe. Zie de use case eventstreaming.
HotKV spreekt het Redis-protocol, dus je kunt een bestaande client erop richten en dezelfde commando's uitvoeren.