芹菜工人 onStart 事件?

Celery worker onStart event?

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

Celery有这样的事件吗?

Celery 在各种事件上发送信号。有 2 个与 worker init

相关的信号

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