排程工作
每個執行個體上都執行同一個 cron,而鎖確保其中只有一個真正執行工作。
確保同一時間只有一個工作者執行某項工作,鎖會自行到期,並由持有者安全地釋放。
NX 只有在沒有人持有時才取得。PX 30000 讓鎖在 A 停止運作時於 30 秒後到期。
以真實 HotKV 指令與範例回覆呈現的動畫導覽。點擊任一步驟即可跳到該步驟。 指令與回覆維持英文,與您在 HotKV 中輸入及看到的完全一致。
跨多台機器的 cron 工作、付款請款與快取重建,絕不能同時執行兩次。沒有到期時間的鎖,在持有者當機時會被永遠持有,而以單純的 DEL 釋放鎖,可能在您的鎖已到期之後,刪掉別人的鎖。
SET 搭配 NX 與 PX 只有在沒有人持有時才取得鎖,並為它設定到期時間,讓當機的持有者無法永遠占著。每位持有者以隨機權杖作為值儲存。DELEX 搭配 IFEQ 只有在鎖仍持有您的權杖時才會刪除,這就是過去需要 Lua 腳本才能做到的安全釋放。
NX 只有在沒有人持有時才取得。PX 30000 讓鎖在 A 停止運作時於 30 秒後到期。
SET lock:billing-run tok-a81f NX PX 30000鎖已被持有,所以 B 得到 nil,並略過這次執行。
SET lock:billing-run tok-b22c NX PX 30000只有一個工作者執行帳單作業。
PTTL lock:billing-runDELEX 只有在值仍是 A 的權杖時才會刪除鍵。
DELEX lock:billing-run IFEQ tok-a81f如果 A 太慢,而 B 現在持有這把鎖,A 的釋放動作不會動到 B 的鎖。
DELEX lock:billing-run IFEQ tok-stale每個執行個體上都執行同一個 cron,而鎖確保其中只有一個真正執行工作。
同一筆訂單的請款與退款操作會被序列化,因此絕不會重疊。
只有一個請求重建昂貴的快取項目,其他請求則等待或提供過期的值。
SET NX PX 只有在鎖空閒時才取得,並附帶逾時。
SETNXPXDELEX IFEQ 只有在值與您的權杖相符時才刪除。
DELEX檢查剩餘時間,並為長時間的工作延長。
PTTLPEXPIRE對於較大的值,DELEX IFDEQ 比對的是摘要,而不是完整的值。
DIGESTIFDEQ如果您的鎖已到期,而另一個工作者拿到了它,單純的 DEL 會刪掉他們的鎖。DELEX IFEQ 只有在鎖仍持有您的權杖時才會刪除。
比工作通常需要的時間更長。對於長時間的工作,請在仍持有鎖的期間定期延長到期時間。
不需要。DELEX 以一個指令完成比對與刪除。