Hatchet:Python中分布式、容错任务队列


这是一个分布式、容错的任务队列开源项目。

Hatchet 取代了难以管理的遗留队列或发布/订阅系统,因此您可以设计持久的工作负载,从故障中恢复并解决并发性、公平性和速率限制等问题。

您可以使用 Hatchet 在一组具有最少配置或基础设施的worker之间分发功能,而不是管理自己的任务队列或发布/订阅系统。

什么让 Hatchet 如此出色?

  • 超低延迟和高吞吐量调度: Hatchet 构建在低延迟队列(25ms平均启动)之上,完美平衡实时交互能力与关键任务所需的可靠性。
  • 并发性、公平性和速率限制:使用 Hatchet 的内置策略实现 FIFO、LIFO、循环和优先级队列,旨在以最少的配置规避常见的扩展陷阱。
  • 设计弹性:通过可定制的重试策略和集成的错误处理,Hatchet 可确保您的操作从瞬态故障中快速恢复。您可以将大型作业分解为小任务,这样您就可以完成运行而无需重新运行工作。

增强可见性和控制:

  • 可观察性。您的所有运行都可以完全搜索,使您能够快速识别问题。我们跟踪您运行中的延迟、错误率或自定义指标。
  • (实用)持久执行。重播事件并从工作流程中的特定步骤手动获取执行。
  • Cron。设置要执行的函数运行的重复计划。
  • 一次性调度。安排函数运行在未来的特定时间和日期执行。
  • 尖峰保护。消除流量峰值并仅执行系统可以处理的操作。
  • 增量流式传输。随着您的功能在后台工作进程中的进展,订阅更新。

示例用例:

  • 生成式人工智能的公平性:不要让繁忙的用户压垮你的系统。Hatchet 可通过可配置的策略将请求公平地分配给worker。
  • 文档索引的批量处理:Hatchet 可以处理文档、图像和其他数据的大规模批量处理,并在工作失败时恢复工作。
  • 多模式系统的工作流协调:Hatchet 可以处理多模式输入和输出的协调,并具有完全的 DAG 式执行。
  • 基于事件处理的正确性:响应外部事件或系统内部事件,并自动重放事件。