有一个具有不同计算机的集群,每个计算机都有一个指定路径(~/celery_node/
)中的项目代码。最初,集群中没有正在运行的芹菜工人。
问题#1: 如何在不登录任何机器的情况下在每台机器上启动一些芹菜工人,或者只是登录一台并在其他机器上启动芹菜工人?
问题2:如果每台机器已经启动了一些芹菜工人,如何在不远程登录的情况下重新启动它们?
答案 0 :(得分:0)
您可以使用fabric执行远程操作
from fabric.api import run
def host_type():
run('service celery start')
定义任务后,它可以在一个或多个服务器上运行,如下所示:
$ fab -H localhost,linuxbox restart celery
[localhost] run: service celery start
[localhost] out: celery started/running
[linuxbox] run: service celery start
[linuxbox] out: celery started/running
Done.
Disconnecting from localhost... done.
Disconnecting from linuxbox... done.
答案 1 :(得分:0)
看看花 https://github.com/mher/flower 它允许很多管理类型的工作
答案 2 :(得分:0)
另外还有autoreload标志:
使用--autoreload选项启动celery worker将使worker能够监视对导入的所有导入任务模块的文件系统更改(以及添加到CELERY_IMPORTS设置或-I | --include选项的任何非任务模块) )。
这是一个仅用于开发的实验性功能,不鼓励在生产中使用自动重载,因为在Python中重新加载模块的行为未定义,并且可能导致难以诊断错误和崩溃。 Celery使用与在例如自动重新加载器中找到的相同的方法。 Django runserver命令。