如何检测故障并自动重启celery worker

时间:2019-02-25 07:55:07

标签: linux cron celery django-celery celerybeat

我在django支持的网站中使用CeleryCelerybeat。服务器操作系统为Ubuntu 16.04。通过使用celerybeat,芹菜工作者每10分钟完成一次工作。有时工作人员会关闭而没有任何有用的日志消息或错误。 因此,我想找到一种方法来检测celery worker(不是Beat)的状态(开/关),如果停止,请自动重新启动。 我怎样才能做到这一点? 谢谢

1 个答案:

答案 0 :(得分:0)

在生产中,您应该使用Supervisor / Upstart / Systemd / ... / ....作为守护程序[1]运行Celery,Beat,APP服务器等。Celery文档中有关于此的部分。 [2]

我最喜欢的工具是Supervisord [3]。这是Celery的Supervisord示例配置:https://github.com/celery/celery/tree/master/extra/supervisord,这里的https://github.com/illagrenan/ubuntu-supervisor-configuration是有关在Ubuntu上安装Supervisord的教程。

  

(...)Supervisord将进程作为其子进程启动,并且可以   配置为在崩溃时自动重新启动它们。 (...)

来源:http://supervisord.org/introduction.html#introduction