SuperAPI AI 工具集

python-background-jobs

编程与开发

查看项目

更新于 10-16 00:30

技能介绍

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

主要能力:任务队列模式(入队后立即返回 job ID);幂等性设计(任务可能重试,需保证重复执行安全);任务状态机(pending → running → succeeded/failed);至少一次投递语义下的重复处理;Celery 任务配置(task_time_limit、task_soft_time_limit、task_acks_late、worker_prefetch_multiplier 等);自动重试与指数退避;死信队列(DLQ)保存永久失败任务;状态轮询接口;任务链、并行组与 chord 工作流;替代方案 RQ、Dramatiq 及 AWS SQS、GCP Tasks、Azure Functions 等云原生选项。

使用方式:以 Celery 为例,先创建 app = Celery("tasks", broker="redis://localhost:6379"),用 @app.task 装饰任务函数,在 API 中调用 send_email.delay(...) 入队;持久化 Job 记录并返回 job_id 与 poll_url;通过 GET /jobs/{job_id} 查询状态。幂等策略包括写前检查、幂等键、upsert、去重窗口。

适用场景:异步任务处理、邮件与通知、报表导出、上传与媒体处理、外部服务集成、事件驱动架构。

限制:资料未提供具体安装命令、版本要求、性能数据、收费信息与平台支持细节;示例代码需按实际环境调整,队列的至少一次投递要求业务代码自行处理重复执行。