我一直在查看Celery 4.3.0文档,但找不到针对工人的任何生命周期事件。大多数工作人员管理都是基于命令行的,但是我需要一种在代码中挂钩工作人员开始事件的方法,以便我可以执行一些自定义的队列使用者分配。
芹菜有这样的事件吗?
答案 0 :(得分:1)
Celery在各种事件上发送信号。有2个与worker初始化相关的信号
worker_init
信号,该信号已分派before the worker is started。
worker_process_init
信号,该信号在所有池child processes when they start中调度。
这是一个示例代码,用于监听信号。
from celery.signals import worker_init, worker_process_init
@worker_init.connect()
def worker_init_handler(*args, **kwargs):
print(args, kwargs)
print('worker_init')
@worker_process_init.connect()
def worker_process_init_handler(*args, **kwargs):
print(args, kwargs)
print('worker_process_init')