Geplande jobs
Dezelfde cron draait op elke instantie, en de lock zorgt ervoor dat precies één ervan het werk doet.
Zorg dat slechts één worker tegelijk een job uitvoert, met locks die vanzelf verlopen en veilig door hun eigenaar worden vrijgegeven.
NX pakt hem alleen als niemand hem vasthoudt. PX 30000 laat hem na 30 seconden verlopen als A sterft.
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.
Cronjobs op meerdere machines, betalingsafschrijvingen en cachehersteloperaties mogen niet tegelijk twee keer draaien. Een lock zonder verloopdatum wordt eeuwig vastgehouden als zijn eigenaar crasht, en een lock vrijgeven met een gewone DEL kan de lock van iemand anders verwijderen nadat die van jou is verlopen.
SET met NX en PX verkrijgt een lock alleen als niemand hem vasthoudt, en geeft hem een verloopdatum zodat een gecrashte eigenaar hem niet eeuwig kan vasthouden. Elke eigenaar slaat een willekeurig token op als waarde. DELEX met IFEQ verwijdert de lock alleen als hij nog jouw token bevat, wat de veilige vrijgave is waarvoor vroeger een Lua-script nodig was.
NX pakt hem alleen als niemand hem vasthoudt. PX 30000 laat hem na 30 seconden verlopen als A sterft.
SET lock:billing-run tok-a81f NX PX 30000De lock wordt vastgehouden, dus B krijgt nil en slaat deze run over.
SET lock:billing-run tok-b22c NX PX 30000Slechts één worker voert de factureringsjob uit.
PTTL lock:billing-runDELEX verwijdert de sleutel alleen als de waarde nog het token van A is.
DELEX lock:billing-run IFEQ tok-a81fAls A te traag was geweest en B nu de lock vasthield, zou de vrijgave van A de lock van B met rust laten.
DELEX lock:billing-run IFEQ tok-staleDezelfde cron draait op elke instantie, en de lock zorgt ervoor dat precies één ervan het werk doet.
Afschrijvings- en terugbetalingsoperaties op één bestelling worden geserialiseerd zodat ze nooit overlappen.
Slechts één verzoek herbouwt een dure cache-entry terwijl de andere wachten of de verouderde waarde serveren.
SET NX PX pakt de lock alleen als hij vrij is, met een time-out.
SETNXPXDELEX IFEQ verwijdert alleen als de waarde overeenkomt met jouw token.
DELEXControleer de resterende tijd en verleng hem voor lange jobs.
PTTLPEXPIREVoor grote waarden vergelijkt DELEX IFDEQ een digest in plaats van de volledige waarde.
DIGESTIFDEQAls jouw lock is verlopen en een andere worker hem heeft gepakt, zou een gewone DEL hun lock verwijderen. DELEX IFEQ verwijdert hem alleen zolang hij nog jouw token bevat.
Langer dan de job normaal duurt. Verleng bij lange jobs de verloopdatum periodiek zolang je de lock nog vasthoudt.
Nee. DELEX doet het vergelijken en verwijderen in één commando.
HotKV spreekt het Redis-protocol, dus je kunt een bestaande client erop richten en dezelfde commando's uitvoeren.