f91c540bde612486b610f3ad533f15d65aafc10e
Celery 定时任务项目 + Flower监控
项目结构
celery_app.py: Celery应用配置tasks.py: 定义任务函数scheduler.py: 定时任务调度配置run_worker.py: 启动Worker的脚本run_beat.py: 启动Beat调度器的脚本run_flower.py: 启动Flower监控的脚本flower_config.py: Flower监控配置start_all.py: 一键启动所有服务test_task.py: 测试脚本
安装依赖
pip install -r requirements.txt
启动Redis
确保Redis服务已启动,默认监听localhost:6379
运行项目
方式一:一键启动(推荐)
python start_all.py
方式二:分别启动
- 启动Celery Worker
python run_worker.py
- 启动Celery Beat调度器
python run_beat.py
- 启动Flower监控
python run_flower.py
Flower监控
访问 http://localhost:5555 查看监控面板,包含:
- 📊 实时任务状态
- 📈 Worker状态和性能
- ⏰ 定时任务执行历史
- 🔍 任务执行详情
- 📋 队列监控
定时任务配置
任务会在每天上午9点准时执行,执行时会打印日志信息。
测试任务
1. 测试API接口
python test_api.py
2. 测试重试机制
# 正常重试测试
python test_retry.py
# 模拟失败场景测试
python simulate_failure.py
3. 测试HTTP方法
# 测试不同HTTP方法的API调用
python test_methods.py
# 使用通用API任务
from generic_api_task import generic_api_call
result = generic_api_call.delay('get_api') # 调用GET API
result = generic_api_call.delay('put_api', {'key': 'value'}) # 调用PUT API
4. 测试Body配置
# 测试不同API配置的body参数
python test_body_config.py
# 使用自定义body参数
from generic_api_task import generic_api_call
custom_body = {'title': '自定义标题', 'content': '自定义内容'}
result = generic_api_call.delay('main_api', custom_body)
3. 手动触发定时任务
from tasks import daily_morning_task
result = daily_morning_task.delay()
print(result.get())
监控功能
- 实时查看任务执行状态
- 监控Worker性能指标
- 查看任务执行历史和日志
- 管理定时任务
- 监控队列状态
Description
Languages
Python
100%