SuperAPI AI 工具集

celery-advanced

部署与运维

查看项目

更新于 10-16 04:03

技能介绍

celery-advanced 是面向 Celery 的高级模式技能,定位为企业级任务编排,超越基础后台任务。资料说明其适用场景包括:复杂多步骤任务工作流(ETL 管道、订单处理)、基于优先级的任务处理(高级用户与普通用户)、限流的对外 API 调用(API 配额与节流)、多队列路由(按任务类型分配专用 worker)、生产监控与可观测性,以及任务结果聚合与扇出模式。

主要能力方面,资料提供以下内容。

Canvas 工作流:使用 signature、chain、group、chord 构建任务编排。signature 可创建可复用任务调用,含不可变签名(si,不接收上一任务结果)与偏函数签名(s 预置参数)。chain 用于顺序执行并传递结果,可通过 result.parent.get() 读取中间结果,链中异常可触发 self.retry 或中断后续任务。group 用于并行执行,可用 ready、successful、failed 检查状态并逐个迭代已完成结果。chord 用于并行加回调,header 全部完成后由 body 接收结果列表,任一 header 失败则 body 不执行。另提供 map、starmap 与 chunks 批量处理模式。

优先级队列:通过 kombu Queue 定义 high/default/low 队列,配合 task_default_queue、task_default_routing_key 设置默认。队列内优先级需 Redis 5+,可用 broker_transport_options 配置 priority_steps、sep 与 queue_order_strategy。任务路由可按任务名(task_routes)配置,也可在调用时用 apply_async 指定 queue 与 priority,或在任务装饰器中声明 queue 与 priority。worker 可按队列启动,示例包含 -Q、-c 并发数与 --prefetch-multiplier。

限流:可使用任务装饰器 rate_limit 支持如 100/m、10/s、1000/h 的每任务限流。运行时可经 current_app.control.rate_limit 动态调整,并按 destination 指定 worker。也可自定义令牌桶限流任务。

多队列路由:提供 TaskRouter 类,按任务名前缀、参数或 kwargs 动态返回 queue 与 priority;也展示基于内容的路由示例,如在订单金额超过阈值时将后续步骤链式派发到 high 与 notifications 队列。

生产监控:使用 Flower 启动面板,可加 --basic_auth 与 --persistent 持久化。通过 signals 的 task_prerun、task_postrun、task_failure 上报指标与告警。提供健康检查示例,检查 broker 连接与 inspect 活动 worker,返回健康状态、worker 列表与活动任务数。自定义任务状态示例通过 update_state 上报 VALIDATING、PROCESSING、UPLOADING 等进度,并用 AsyncResult 读取。

使用方式与工程实践:资料给出数据库会话管理与指数退避重试的基础任务类(DatabaseTask、RetryableTask),包含 autoretry_for、max_retries、retry_backoff、retry_jitter 等配置。关键决策表建议:工作流类型按串行用 chain、并行用 group、扇入用 chord;优先级队列多数场景用 high/default/low 三个;限流简单场景用每任务 rate_limit,复杂场景用令牌桶;生产监控用 Flower 加自定义 signals;动态路由用基于内容的路由器;worker 按队列分离并支持 HPA 自动扩缩;错误处理用带重试的基础任务加死信队列。

限制与反模式:资料明确禁止在任务内阻塞等待其他任务结果(result.get() 会导致 worker 阻塞与死锁)、禁止无超时的同步 I/O、不应忽略任务确认(task_acks_late 默认会在崩溃时丢任务)、重试任务必须幂等以避免重复创建,chord 中应使用不可变签名 si() 防止参数污染。

资料还列出参考文档、模板、清单与示例,如 canvas 工作流、优先级队列配置、限流模式、celery-beat 调度、生产配置模板、优先级 worker 模板、生产部署清单与订单处理示例,以及与 background-jobs、message-queues、resilience-patterns、observability-monitoring 等相关技能。技能能力标签包括 canvas-workflows、priority-queues、rate-limiting、task-monitoring。关于收费、价格、平台、具体效果与安装方式,资料暂未提供。