SuperAPI AI 工具集

python-background-jobs

编程与开发

查看项目

更新于 10-15 21:48

技能介绍

用途:将长耗时或不可靠的工作从请求/响应周期中解耦,API 立即返回,由后台 Worker 异步处理。适用于耗时超过数秒的任务、发送邮件/通知/Webhook、生成报告或导出数据、处理上传与媒体转换、集成不可靠外部服务、构建事件驱动架构。

主要能力:任务队列模式(入队后立即返回 job ID);幂等性设计(任务可能重试,需可安全重复执行);任务状态机(pending → running → succeeded/failed);至少一次投递语义(代码需处理重复)。示例使用 Celery,也可选 RQ、Dramatiq 或云原生方案(AWS SQS、GCP Tasks)。

必要用法:定义任务并异步调用,例如 app = Celery("tasks", broker="redis://localhost:6379"),@app.task 装饰函数,在 API 中用 send_email.delay(...) 入队。可配置 task_time_limit、task_soft_time_limit、task_acks_late、task_reject_on_worker_lost、worker_prefetch_multiplier 等;用 bind=True、max_retries、default_retry_delay、autoretry_for 控制重试,并用 self.retry(exc=e, countdown=...) 做指数退避。

最佳实践:立即返回、持久化任务状态、任务幂等、外部调用使用幂等键、设置软硬超时、实现死信队列、记录状态转换、对瞬时错误重试、不重试永久失败、监控队列深度。

限制:仅提供模式与实现指导,不提供具体项目代码实现;需要项目上下文与技术栈信息;不涉及非技术业务决策。更多高级模式见 references/details.md。内容源自 wshobson/agents,MIT License,Copyright (c) 2024 Seth Hobson,使用与再分发须保留版权声明。