我一直在查看 Celery 4.3.0 文档,但我找不到工作人员的任何类型的生命周期事件。大多数工作程序管理都是基于命令行的,但我需要一种在代码中挂钩工作程序启动事件的方法,以便我可以执行一些自定义的队列使用者分配。
Celery有这样的活动吗?
Celery 就各种事件发送信号。有2个与worker init相关的信号
worker_init
在工作进程启动之前发出的信号。
worker_process_init
信号在所有池子进程启动时调度。
这是一个用于监听信号的代码示例。
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')
Run Code Online (Sandbox Code Playgroud)