交易類電子郵件與簡訊
註冊、收據與重設訊息由網頁應用程式排入佇列,再由一組工作者寄出。
先進先出的佇列,工作者當機時也不會遺失工作,生產者與消費者平行運行。
任何服務都能新增工作,不必等待消費者。
以真實 HotKV 指令與範例回覆呈現的動畫導覽。點擊任一步驟即可跳到該步驟。 指令與回覆維持英文,與您在 HotKV 中輸入及看到的完全一致。
寄送電子郵件、圖片縮放與 webhook 等背景工作,在建立工作的程式碼與執行工作的程式碼之間,需要一個佇列。一個在工作者於任務途中當機時會遺失工作的佇列,比沒有佇列更糟,因為沒有人會發現工作不見了。
清單提供了簡單的先進先出佇列。BLMOVE 在把每個工作交給工作者的同時,將它移到處理中清單,因此即使工作者消失,進行中的工作也一定還存放在某處。生產者與消費者由平行的工作執行緒處理。
任何服務都能新增工作,不必等待消費者。
LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"BLMOVE 會阻塞到有工作為止,然後一步將它移到處理中清單。
BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0電子郵件已寄出。工作從處理中清單移除。
LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"工作者 2 在工作途中停止運作。它的工作仍在處理中清單裡,沒有遺失。
LRANGE queue:emails:processing 0 -1監控程式把被遺棄的工作移回佇列,由另一個工作者接手。
LMOVE queue:emails:processing queue:emails LEFT RIGHT註冊、收據與重設訊息由網頁應用程式排入佇列,再由一組工作者寄出。
上傳的檔案排隊等待產生縮圖與轉碼,轉碼器當機也不會漏掉任何檔案。
對外的 webhook 被排入佇列並重試,不會阻塞觸發它們的請求。
LPUSH 搭配 BRPOP,工作者在有工作到來之前會休眠。
LPUSHBRPOPBLMOVE 以原子方式將每個工作交給處理中清單。
BLMOVELREM生產者與消費者由平行的工作執行緒處理。
若需要確認機制、消費者群組與重播,請使用串流。
XADDXREADGROUP如果您用 BLMOVE 認領工作,工作會留在處理中清單。監控程式可以把停留太久的項目移回佇列。
不需要。BRPOP 與 BLMOVE 會阻塞到工作到來為止,並可選擇設定逾時。
清單是最簡單的佇列。串流則加入消費者群組、逐訊息確認與歷史記錄。請參閱事件串流使用情境。