這是一個分散式、容錯的任務佇列開源專案。
Hatchet 取代了難以管理的遺留佇列或釋出/訂閱系統,因此您可以設計持久的工作負載,從故障中恢復並解決併發性、公平性和速率限制等問題。
您可以使用 Hatchet 在一組具有最少配置或基礎設施的worker之間分發功能,而不是管理自己的任務佇列或釋出/訂閱系統。
什麼讓 Hatchet 如此出色?
- 超低延遲和高吞吐量排程: Hatchet 構建在低延遲佇列(25ms平均啟動)之上,完美平衡實時互動能力與關鍵任務所需的可靠性。
- 併發性、公平性和速率限制:使用 Hatchet 的內建策略實現 FIFO、LIFO、迴圈和優先順序佇列,旨在以最少的配置規避常見的擴充套件陷阱。
- 設計彈性:透過可定製的重試策略和整合的錯誤處理,Hatchet 可確保您的操作從瞬態故障中快速恢復。您可以將大型作業分解為小任務,這樣您就可以完成執行而無需重新執行工作。
增強可見性和控制:
- 可觀察性。您的所有執行都可以完全搜尋,使您能夠快速識別問題。我們跟蹤您執行中的延遲、錯誤率或自定義指標。
- (實用)持久執行。重播事件並從工作流程中的特定步驟手動獲取執行。
- Cron。設定要執行的函式執行的重複計劃。
- 一次性排程。安排函式執行在未來的特定時間和日期執行。
- 尖峰保護。消除流量峰值並僅執行系統可以處理的操作。
- 增量流式傳輸。隨著您的功能在後臺工作程序中的進展,訂閱更新。
示例用例:
- 生成式人工智慧的公平性:不要讓繁忙的使用者壓垮你的系統。Hatchet 可透過可配置的策略將請求公平地分配給worker。
- 文件索引的批次處理:Hatchet 可以處理文件、影像和其他資料的大規模批次處理,並在工作失敗時恢復工作。
- 多模式系統的工作流協調:Hatchet 可以處理多模式輸入和輸出的協調,並具有完全的 DAG 式執行。
- 基於事件處理的正確性:響應外部事件或系統內部事件,並自動重放事件。