Schemalagda jobb
Samma cron körs på varje instans, och låset ser till att exakt en av dem gör arbetet.
Se till att bara en arbetare kör ett jobb åt gången, med lås som löper ut av sig själva och släpps säkert av sin ägare.
NX tar det bara om ingen håller det. PX 30000 gör att det löper ut efter 30 sekunder om A dör.
En animerad genomgång med riktiga HotKV-kommandon och exempelsvar. Klicka på valfritt steg för att hoppa dit. Kommandon och svar förblir på engelska, precis som du skriver och ser dem i HotKV.
Cron-jobb på flera maskiner, betalningsuttag och ombyggnader av cache får inte köras två gånger samtidigt. Ett lås utan utgångstid hålls för evigt när dess ägare kraschar, och att släppa ett lås med en vanlig DEL kan radera någon annans lås efter att ditt har löpt ut.
SET med NX och PX tar ett lås bara om ingen håller det, och ger det en utgångstid så att en kraschad ägare inte kan hålla det för evigt. Varje ägare lagrar en slumpmässig token som värde. DELEX med IFEQ raderar låset bara om det fortfarande innehåller din token, vilket är den säkra frigöringen som tidigare krävde ett Lua-skript.
NX tar det bara om ingen håller det. PX 30000 gör att det löper ut efter 30 sekunder om A dör.
SET lock:billing-run tok-a81f NX PX 30000Låset hålls, så B får nil och hoppar över den här körningen.
SET lock:billing-run tok-b22c NX PX 30000Bara en arbetare kör faktureringsjobbet.
PTTL lock:billing-runDELEX raderar nyckeln bara om värdet fortfarande är A:s token.
DELEX lock:billing-run IFEQ tok-a81fOm A hade varit för långsam och B nu höll låset skulle A:s frigöring lämna B:s lås ifred.
DELEX lock:billing-run IFEQ tok-staleSamma cron körs på varje instans, och låset ser till att exakt en av dem gör arbetet.
Uttag och återbetalningar på en och samma order serialiseras så att de aldrig överlappar.
Bara en förfrågan bygger om en dyr cachepost medan de andra väntar eller serverar det gamla värdet.
SET NX PX tar låset bara om det är ledigt, med en tidsgräns.
SETNXPXDELEX IFEQ raderar bara om värdet matchar din token.
DELEXKontrollera återstående tid och förläng den för långa jobb.
PTTLPEXPIREFör stora värden jämför DELEX IFDEQ en digest i stället för hela värdet.
DIGESTIFDEQOm ditt lås löpte ut och en annan arbetare tog det skulle en vanlig DEL radera deras lås. DELEX IFEQ raderar det bara så länge det fortfarande innehåller din token.
Längre än jobbet normalt tar. För långa jobb, förläng utgångstiden med jämna mellanrum så länge du fortfarande håller låset.
Nej. DELEX gör jämförelsen och raderingen i ett enda kommando.
HotKV talar Redis-protokollet, så du kan peka en befintlig klient mot det och köra samma kommandon.