如何动态添加函数到现有的Celery工作进程?
我刚开始学习celery,想知道是否可以在已经启动的celeryd进程中添加模块。换句话说,我不想像在
CELERY_IMPORTS = ("tasks", "additional_module" )
启动工作进程之前那样通过celeryconfig.py来添加模块,而是想在工作进程启动之后以某种方式让additional_module可用。
提前谢谢你们。
1 个回答
2
你可以通过启动一个新的 celeryd,并扩展导入列表,来实现你的目标,然后在旧的工作进程完成当前任务后,优雅地关闭它。
因为获取任务是异步的,也就是说任务会被推送给你,而只有在celery完成工作后才会标记为完成,所以用这种方式你实际上不会错过任何工作。你应该可以在同一台机器上运行celery工作进程——它们会作为新的连接出现在RabbitMQ(或者你使用的其他队列后端)上。