"""
1 判断celery停止工作的依据可能有:
1.1 查看celery服务的运行状态: 若状态显示不在运行中, 则celery可能停止工作
ps aux| grep celery
如何通过接口的形式查看celery运行状态?
可以使用Flower工具。其是celery的一个官方监控工具,提供了一个基于web的用户界面
安装和使用步骤:
1.安装 pip install flower
2.启动 celery flower -A your_project_name
- flower默认在本地运行,若想通过公网访问,则需在启动是加 --address=0.0.0.0 参数
3.访问flower用户界面:http://localhost:5555/api/workers <会返回所有worker的状态信息>
1.2 查看定时任务的执行情况: 若定时任务没有按预定时间执行,则celery可能停止工作
2 导致celery停止的原因可能有:
2.1 服务器资源不足: 如内存、硬盘空间不足导致celery无法连接到消息队列或数据库
若内存不足: 若任务量过大,需消耗大量内存,若服务器内存不足,导致celery服务运行不稳定甚至无法运行。
若硬盘空间不足,则导致celery无法写入日志或其他数据,导致celery服务停止。
2.2 网络问题: 如网络不稳定,导致celery无法连接到消息队列或数据库
2.3 软件问题: 如celery本身bug和配置错误
2.4 操作错误: 如误杀掉celery进程
3 由于celery每个任务都是独立的,若某个任务出现异常, 其他任务可能受到影响,也可能没有影响.
4 如何自启动由于未知原因挂了的celery?
分情况
4.1 若是由于服务器资源问题celery挂了,需手动介入解决资源问题后重启celery
4.2 若是由于网络或软件问题导致的,可以写一个脚本,定时检查celery服务的运行状态,若celery服务挂了,重启celery服务
"""