SuperAPI AI 工具集

loom-background-jobs

通用与其它

查看项目

更新于 10-15 20:28

技能介绍

用途:整理后台任务(异步作业)的可靠执行模式,帮助设计在崩溃与重试下不破坏状态的作业系统。

主要能力:

  1. 投递保证:默认至少一次,要求处理器幂等;先处理成功再确认,避免崩溃丢数据。
  2. 幂等性:用业务身份派生稳定键,在持久化端拒绝重复;外部副作用需提供方幂等或事务性 outbox。
  3. 代理选型:对比 SQS 标准/FIFO、Sidekiq、BullMQ、Celery+Redis/RabbitMQ、Kafka/Pulsar 的模型与可靠性注意事项。
  4. 可见性超时与锁竞争:处理超过租约会导致并发重复执行,需心跳续租或原子写入。
  5. 重试与退避:指数退避加全抖动,限制延迟与次数,仅重试瞬时错误,配合熔断与重试预算。
  6. 死信队列:超过最大尝试次数转入 DLQ,告警并保留上下文,修复后受控重放。
  7. 生产者去重:BullMQ jobId、SQS FIFO 去重 ID、Celery 用 SETNX 或唯一行。
  8. 大负载用 claim-check:队列只放引用与哈希,数据存对象存储或数据库。
  9. 定时任务:Celery Beat、BullMQ repeatable、Sidekiq-cron 等,注意重叠、UTC、停机漏跑与漂移。
  10. 工作池与并发:CPU 密集用进程、IO 密集用异步,按下游容量定并发,隔离队列,处理优先级饥饿。
  11. 优雅停机:SIGTERM 后停止拉取并等待在途任务,配置足够宽限期。
  12. 长任务检查点:持久化进度以便恢复,拆分为小单元。
  13. 背压与队列深度监控:关注深度与最老消息年龄。

使用方式:文档给出 Celery、BullMQ、Sidekiq 的配置片段与代码示例,如 autoretry_for、retry_backoff、task_acks_late、attempts、backoff、removeOnComplete、RedrivePolicy 等,需按实际框架配置。

适用场景:需要可靠异步执行、定时调度、重试与死信处理的系统。

限制:资料未提供具体安装命令、收费与平台信息;部分内容(如 Kafka/Pulsar 细节)指向 loom-event-driven,未在此展开。