Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向现有芹菜工人进程动态添加函数?_Python_Distributed Computing_Celery_Celery Task - Fatal编程技术网

Python 向现有芹菜工人进程动态添加函数?

Python 向现有芹菜工人进程动态添加函数?,python,distributed-computing,celery,celery-task,Python,Distributed Computing,Celery,Celery Task,我开始学习celery,我想知道是否有可能将模块添加到已经启动的celeryd进程中。换句话说,不要像中那样通过celeryconfig.py添加模块 CELERY_IMPORTS = ("tasks", "additional_module" ) 在启动辅助进程之前,我想在辅助进程启动之后,以某种方式使附加的_模块可用 提前感谢。您可以通过使用扩展的导入列表启动一个新的celeryd,并最终优雅地关闭您的旧员工(在其完成当前工作后)来实现您的目标 由于将作业推给您并仅在芹菜完成其工作后标记它

我开始学习celery,我想知道是否有可能将模块添加到已经启动的celeryd进程中。换句话说,不要像中那样通过celeryconfig.py添加模块

CELERY_IMPORTS = ("tasks", "additional_module" )
在启动辅助进程之前,我想在辅助进程启动之后,以某种方式使附加的_模块可用


提前感谢。

您可以通过使用扩展的导入列表启动一个新的celeryd,并最终优雅地关闭您的旧员工(在其完成当前工作后)来实现您的目标


由于将作业推给您并仅在芹菜完成其工作后标记它们的异步性质,您实际上不会错过任何这样做的工作。您应该能够在同一台计算机上运行芹菜工作程序-它们将显示为到RabbitMQ(或您使用的任何队列后端)的新连接。

如何从客户端启动新芹菜工作程序?我认为您可以从客户端内部关闭worker,但如何启动一个呢?我没有明确说明我的意思-我应该说启动一个新的芹菜守护进程(即
celeryd
)。我已经更新了我的帖子。当我在2014年8月写这篇文章时,这个建议是否仍然相关/最佳实践,还是有更好的方法?我有许多自定义函数,我正在尝试进行数值优化,这需要花费很多时间(因此使用芹菜在许多计算机上运行它们),因此我希望定期向所有工作人员发送新函数,增加每个工作人员可用的不同优化函数的范围。我读过关于模块在飞行中重新加载的内容,但这似乎有点笨重?我是否可以定期发送新函数,比如说dict,以保证所有员工都能收到它们?