Hatchet:Python中分散式、容錯任務佇列

banq發表於2024-03-12


這是一個分散式、容錯的任務佇列開源專案。

Hatchet 取代了難以管理的遺留佇列或釋出/訂閱系統,因此您可以設計持久的工作負載,從故障中恢復並解決併發性、公平性和速率限制等問題。

您可以使用 Hatchet 在一組具有最少配置或基礎設施的worker之間分發功能,而不是管理自己的任務佇列或釋出/訂閱系統。

什麼讓 Hatchet 如此出色?

  • 超低延遲和高吞吐量排程: Hatchet 構建在低延遲佇列(25ms平均啟動)之上,完美平衡實時互動能力與關鍵任務所需的可靠性。
  • 併發性、公平性和速率限制:使用 Hatchet 的內建策略實現 FIFO、LIFO、迴圈和優先順序佇列,旨在以最少的配置規避常見的擴充套件陷阱。
  • 設計彈性:透過可定製的重試策略和整合的錯誤處理,Hatchet 可確保您的操作從瞬態故障中快速恢復。您可以將大型作業分解為小任務,這樣您就可以完成執行而無需重新執行工作。

增強可見性和控制:

  • 可觀察性。您的所有執行都可以完全搜尋,使您能夠快速識別問題。我們跟蹤您執行中的延遲、錯誤率或自定義指標。
  • (實用)持久執行。重播事件並從工作流程中的特定步驟手動獲取執行。
  • Cron。設定要執行的函式執行的重複計劃。
  • 一次性排程。安排函式執行在未來的特定時間和日期執行。
  • 尖峰保護。消除流量峰值並僅執行系統可以處理的操作。
  • 增量流式傳輸。隨著您的功能在後臺工作程序中的進展,訂閱更新。

示例用例:

  • 生成式人工智慧的公平性:不要讓繁忙的使用者壓垮你的系統。Hatchet 可透過可配置的策略將請求公平地分配給worker。
  • 文件索引的批次處理:Hatchet 可以處理文件、影像和其他資料的大規模批次處理,並在工作失敗時恢復工作。
  • 多模式系統的工作流協調:Hatchet 可以處理多模式輸入和輸出的協調,並具有完全的 DAG 式執行。
  • 基於事件處理的正確性:響應外部事件或系統內部事件,並自動重放事件。

 

相關文章