fbpx

asynq :一個簡單、可靠、高效的分散式任務佇列 Go 程式庫

Asynq 是一個 Go 程式庫,用於排隊( queueing ) 任務並透過工作者( workers ) 非同步處理這些任務。它由 Redis 支援,被設計成可擴展且容易上手。

Asynq工作原理的高階概述。

  • 客戶端將任務放在佇列中
  • 伺服器從佇列中提取任務,並為每個任務啟動一個worker goroutine
  • 任務由多個工作者同時處理

任務佇列被用作在多台機器上分散工作的一種機制。一個系統可以由多個工作伺服器和經紀商( brokers )組成,為高可用性和橫向擴展提供方法。

特點

  • 保證一個任務至少有一次執行機會
  • 排程任務
  • 對失敗的任務進行重試
  • 在工作者( worker )崩潰的情況下自動恢復任務
  • 加權的優先順序佇列
  • 嚴格的優先順序佇列
  • 新增任務的低延遲,因為 Redis 的寫入速度很快
  • 使用唯一選項消除任務的重複性
  • 允許每個任務的超時和最後期限
  • 靈活的處理程式介面,支援中介軟體
  • 能夠暫停佇列,停止處理佇列中的任務
  • 週期性任務
  • 支援 Redis 叢集,用於自動分片和高可用性
  • 支援 Redis Sentinels 的高可用性
  • 檢查和遠端控制佇列和任務的 Web UI
  • 透過 CLI 檢查和遠端控制佇列和任務

相關關鍵字 ( 點選以下關鍵字連結以獲得更多相關開源和線上學習資訊 )

專案網址

追蹤 Soft & Share

幫我們個小忙!

Comments are closed.

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: