Scheduled jobs
वही cron हर instance पर चलती है, और lock यह पक्का करता है कि उनमें से ठीक एक ही काम करे।
पक्का करें कि एक समय में सिर्फ़ एक worker job चलाए, ऐसे locks के साथ जो अपने आप expire होते हैं और अपना मालिक उन्हें सुरक्षित तरीके से छोड़ता है।
NX उसे तभी लेता है जब कोई पकड़े न हो। PX 30000 से A मर जाए तो वह 30 सेकंड में expire हो जाता है।
असली HotKV कमांड और उदाहरण रिस्पॉन्स के साथ एक एनिमेटेड वॉकथ्रू। किसी भी कदम पर क्लिक करके वहां पहुंचें। कमांड और रिस्पॉन्स अंग्रेज़ी में ही रहते हैं, ठीक वैसे जैसे आप HotKV में टाइप करते और देखते हैं।
कई मशीनों पर चलने वाली cron jobs, payment captures और cache rebuilds एक साथ दो बार नहीं चलने चाहिए। बिना expiry वाला lock तब हमेशा के लिए पकड़ा रह जाता है जब उसका मालिक crash हो जाए, और साधारण DEL से lock छोड़ने पर आपका lock expire होने के बाद किसी और का lock delete हो सकता है।
NX और PX के साथ SET lock तभी लेता है जब कोई उसे पकड़े न हो, और उसे expiry देता है ताकि crash हुआ मालिक उसे हमेशा न पकड़े रहे। हर मालिक value के रूप में एक random token रखता है। IFEQ के साथ DELEX lock को तभी delete करता है जब उसमें अब भी आपका token हो, और यही वह सुरक्षित release है जिसके लिए पहले Lua script चाहिए होती थी।
NX उसे तभी लेता है जब कोई पकड़े न हो। PX 30000 से A मर जाए तो वह 30 सेकंड में expire हो जाता है।
SET lock:billing-run tok-a81f NX PX 30000Lock पकड़ा हुआ है, इसलिए B को nil मिलता है और वह इस बार का run छोड़ देता है।
SET lock:billing-run tok-b22c NX PX 30000Billing job सिर्फ़ एक worker चलाता है।
PTTL lock:billing-runDELEX key को तभी delete करता है जब value अब भी A का token हो।
DELEX lock:billing-run IFEQ tok-a81fअगर A बहुत धीमा रहा होता और अब lock B के पास होता, तो A का release B के lock को छुए बिना छोड़ देता।
DELEX lock:billing-run IFEQ tok-staleवही cron हर instance पर चलती है, और lock यह पक्का करता है कि उनमें से ठीक एक ही काम करे।
एक order पर capture और refund के काम एक के बाद एक चलाए जाते हैं, ताकि वे कभी एक-दूसरे पर न चढ़ें।
महँगी cache entry सिर्फ़ एक request दोबारा बनाती है, जबकि बाकी इंतज़ार करती हैं या पुरानी value परोसती हैं।
SET NX PX lock तभी लेता है जब वह खाली हो, timeout के साथ।
SETNXPXDELEX IFEQ तभी delete करता है जब value आपके token से मेल खाए।
DELEXबचा हुआ समय देखें और लंबी jobs के लिए उसे बढ़ा दें।
PTTLPEXPIREबड़ी values के लिए DELEX IFDEQ पूरी value की जगह digest की तुलना करता है।
DIGESTIFDEQअगर आपका lock expire हो गया और किसी दूसरे worker ने उसे ले लिया, तो साधारण DEL उसका lock delete कर देगा। DELEX IFEQ उसे तभी delete करता है जब उसमें अब भी आपका token हो।
job के सामान्य समय से ज़्यादा। लंबी jobs के लिए, जब तक lock आपके पास है, expiry को समय-समय पर बढ़ाते रहें।
नहीं। DELEX तुलना और delete एक ही कमांड में करता है।
HotKV Redis प्रोटोकॉल बोलता है, इसलिए आप किसी मौजूदा क्लाइंट को इसकी ओर इंगित करके यही कमांड चला सकते हैं।