您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

通知工人芹菜任务关闭

通知工人芹菜任务关闭

worker_shutdown仅由而MainProcess不是子池工作人员发送。所有worker_*信号except for worker_process_init,请参阅MainProcess

但是,关闭挂钩永远不会被调用。Ctrl-C’ing worker不会终止任务,我必须从shell手动终止它。

工作者永远不会在正常(热)关机下终止任务。即使一项任务需要花费数天才能完成,工作人员也要等到完成后才能完成关机。您可以设置--soft-time- limit,或--time-limit通知实例何时可以终止任务。

因此,要添加任何类型的流程清理流程,您首先需要确保任务可以实际完成。由于清理不会在发生之前被调用

要将清理步骤添加到池工作进程中,可以使用以下方法

from celery import platforms
from celery.signals import worker_process_init

def cleanup_after_tasks(signum, frame):
    # reentrant code here (see http://docs.python.org/library/signal.html)

def install_pool_process_sighandlers(**kwargs):
    platforms.signals["TERM"] = cleanup_after_tasks
    platforms.signals["INT"] = cleanup_after_tasks

worker_process_init.connect(install_pool_process_sighandlers)
其他 2022/1/1 18:41:37 有475人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶