芹菜工人onStart事件?

时间:2019-05-14 22:36:16

标签: celery

我一直在查看Celery 4.3.0文档,但找不到针对工人的任何生命周期事件。大多数工作人员管理都是基于命令行的,但是我需要一种在代码中挂钩工作人员开始事件的方法,以便我可以执行一些自定义的队列使用者分配。

芹菜有这样的事件吗?

1 个答案:

答案 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')