动态添加函数到现有的芹菜工作进程?

时间:2011-01-12 23:48:05

标签: python distributed-computing celery celery-task

我开始使用芹菜,我想知道是否可以将模块添加到已经启动的celeryd进程中。换句话说,不是像在

中那样通过celeryconfig.py添加模块
CELERY_IMPORTS = ("tasks", "additional_module" )
在启动工作人员之前

,我希望以后以某种方式 工作进程启动后使additional_module可用。

提前感谢。

1 个答案:

答案 0 :(得分:2)

您可以通过启动带有扩展导入列表的 new celeryd来实现您的目标,并最终优雅地关闭您的旧工作者(在其完成当前工作之后)。

由于将工作推送给你的异步性质以及仅在芹菜完成工作后完成工作,你实际上不会错过任何以这种方式工作的工作。您应该能够在同一台机器上运行芹菜工作者 - 它们只会显示为与RabbitMQ(或您使用的任何队列后端)的新连接。