背景
- celery task: 请求了第三方的api, 由于请求次数较多,执行比较慢。周期性任务有一定丢失.
celery 启动
- 开发:celery -B -A proj worker -l debug
- 线上: supervisorctl 托管worker/beats
- beat:周期任务
- worker: CPU密集型/IO密集型
- : prefork: 默认cpu核数.
- : eventlet: 协程
CPU密集型:
celery worker -A proj worker -c 4
IO密集型.
celery worker -A proj --concurrency=10 -P eventlet
监控
- flower:
- django-celery-result: 直接在后台查看
flower: 生产环境开启代理临时访问即可.
celery -A booksong flower --address=0.0.0.0 --port=5555