Joburi programate
Același cron rulează pe fiecare instanță, iar blocarea se asigură că exact una dintre ele face munca.
Asigurați-vă că un singur worker rulează un job la un moment dat, cu blocări care expiră singure și sunt eliberate în siguranță de proprietarul lor.
NX o preia doar dacă nimeni nu o deține. PX 30000 o face să expire în 30 de secunde dacă A se oprește.
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.
Joburile cron de pe mai multe mașini, capturile de plăți și reconstruirile de cache nu trebuie să ruleze de două ori simultan. O blocare fără expirare rămâne ținută la nesfârșit când proprietarul ei se oprește brusc, iar eliberarea unei blocări cu un simplu DEL poate șterge blocarea altcuiva după ce a ta a expirat.
SET cu NX și PX obține o blocare doar dacă nimeni nu o deține și îi dă o expirare, ca un proprietar oprit brusc să n-o țină la nesfârșit. Fiecare proprietar stochează un token aleatoriu drept valoare. DELEX cu IFEQ șterge blocarea doar dacă încă are tokenul dvs., ceea ce este eliberarea sigură care înainte cerea un script Lua.
NX o preia doar dacă nimeni nu o deține. PX 30000 o face să expire în 30 de secunde dacă A se oprește.
SET lock:billing-run tok-a81f NX PX 30000Blocarea este ținută, deci B primește nil și sare peste această rulare.
SET lock:billing-run tok-b22c NX PX 30000Doar un singur worker rulează jobul de facturare.
PTTL lock:billing-runDELEX șterge cheia doar dacă valoarea este încă tokenul lui A.
DELEX lock:billing-run IFEQ tok-a81fDacă A ar fi fost prea lent și B ar fi ținut acum blocarea, eliberarea lui A ar lăsa în pace blocarea lui B.
DELEX lock:billing-run IFEQ tok-staleAcelași cron rulează pe fiecare instanță, iar blocarea se asigură că exact una dintre ele face munca.
Operațiunile de captură și de rambursare pe o comandă sunt serializate, ca să nu se suprapună niciodată.
Doar o cerere reconstruiește o intrare de cache costisitoare, în timp ce celelalte așteaptă sau servesc valoarea veche.
SET NX PX preia blocarea doar dacă este liberă, cu un timeout.
SETNXPXDELEX IFEQ șterge doar dacă valoarea se potrivește cu tokenul dvs.
DELEXVerificați timpul rămas și prelungiți-l pentru joburi lungi.
PTTLPEXPIREPentru valori mari, DELEX IFDEQ compară un digest în loc de valoarea întreagă.
DIGESTIFDEQDacă blocarea dvs. a expirat și alt worker a preluat-o, un simplu DEL i-ar șterge blocarea lui. DELEX IFEQ o șterge doar cât timp încă are tokenul dvs.
Mai lungă decât durează de obicei jobul. Pentru joburi lungi, prelungiți periodic expirarea cât timp încă dețineți blocarea.
Nu. DELEX face compararea și ștergerea într-o singură comandă.
HotKV vorbește protocolul Redis, așa că puteți îndrepta spre el un client existent și rula aceleași comenzi.