系统架构设计
Celery 的核心组件包括任务生产者、消息代理和 Worker 节点。通过 Redis 作为消息中间件,可以实现任务的可靠传递和分布式执行。生成的代码结构清晰,主要分为任务定义模块、配置文件和监控接口三大部分。
Redis 消息代理配置
在 celery_config.py 中配置了 Redis 连接信息,包括 broker_url 和 result_backend。特别设置了连接池参数,避免频繁创建新连接。自动添加了连接重试逻辑,防止因网络抖动导致服务不可用。
任务定义与重试机制
在 tasks.py 中定义了三个典型任务:
- 发送邮件任务:包含 SMTP 连接管理和邮件内容模板渲染
- 图片处理任务:支持缩略图生成和格式转换
- 数据分析任务:用 pandas 进行数据清洗和统计
每个任务都通过@task 装饰器注册,并配置了 retry 策略(最大重试 3 次,间隔指数递增)。
进度监控接口实现
通过 Flask 创建了简单的 REST API,可以查询任务状态和进度。接口返回包含 task_id、status、result 等字段的 JSON 数据。代码还考虑了异常处理,比如对无效 task_id 的校验。
Docker 部署配置
docker-compose.yml 里定义了三个服务:
- redis 服务:使用官方镜像
- worker 服务:基于 Python 镜像安装项目依赖
- web 服务:运行监控接口
环境变量通过.env 文件统一管理,方便不同环境部署。

