芹菜插件,增加了优雅的停止工作能力
celery-graceful-stop的Python项目详细描述
#芹菜优雅的停止
[芹菜](http://celeryproject.org)插件提供了优雅的工人停止的能力。
#问题 长时间运行任务的生产部署要求正常停止工作进程。不幸的是芹菜有不同的行为:
- 通过芹菜接收信号,结果开始warm shutdown过程。由于此过程,inspect和control命令将不可用。
- 此外,所有任务都由第二个sigterm使用cold shutdown过程强制终止。
此模块提供了解决此问题的更一致的方法,它
- 重写sigterm接收器以防止默认的warm shutdown和cold shutdown工作进程行为,
- 强制inspect和control命令在接收到sigterm信号后仍能工作。
#安装和设置
` pip install git+https://github.com/MnogoByte/celery-graceful-stop.git `
用以下行附加您的proj/celeriy.pyfile containgapp实例。
`python import celery_graceful_stop celery_graceful_stop.register(app) `
#设置
- 芹菜优雅的停止(布尔值)。控制优美的停止功能。(true默认设置)
#与systemd一起使用
- 为每个工人定义一个服务(systemd只需要一个masterpid来重新启动)。
- 为每个工人提供/etc/conf.d/celeriry\lt;service\u name>;配置文件。
- 将[芹菜@.service](systemd/celeriy@.service)文件添加到系统中。
- 使用systemctl enable celeriy@<;service_name>;注册您的服务。
#限制
- 此模块在接收到sigterm信号后禁用池收缩,池增长,自动缩放,池重新加载,添加消费者,取消消费者控制命令。实际上,当worker关闭时,您不需要调用它们,因为worker不会启动新任务。
- 此模块仅在pool=prefork的芹菜3.1中测试过。
#作者
[安东诺夫·米哈伊尔](https://github.com/atin65536)
#许可证
BSD-3