我的芹菜日志显示此错误:
UserWarning: A node named celery@postr is already using this process mailbox!
Maybe you forgot to shutdown the other node or did not do so properly?
Or if you meant to start multiple nodes on the same host please make sure
you give each node a unique node name!
warnings.warn(W_PIDBOX_IN_USE.format(node=self))
如何关闭另一个节点?
PS:有没有办法查看当前所有正在运行的节点?
假设您使用的是 UNIX,您可以使用以下命令查看正在运行的进程:
ps aux | grep celery
这将向您显示正在运行的进程 ID 的列表,例如。 1111、2222 和 3333。然后您可以通过发送
TERM
信号来关闭 celery 进程:
kill -TERM 1111 2222 3333
根据您的配置,您的 celery 进程可能会生成多个子进程,您可以在 /var/run/celery.pid 等内容中看到父进程 ID
参见:https://docs.celeryproject.org/en/stable/userguide/workers.html#stopping-the-worker
我遇到了同样的问题,这可能是因为您没有为不同的节点设置主机名。这是让芹菜区分它们所必需的。
根据@Rune提到的文档,您应该通过
-n
参数启动具有不同主机名的多个节点:
celery -A proj worker --loglevel=INFO --concurrency=10 -n worker1@%h
celery -A proj worker --loglevel=INFO --concurrency=10 -n worker2@%h
celery -A proj worker --loglevel=INFO --concurrency=10 -n worker3@%h
其中
%h
表示主机名,包括域名。
注意:如果您使用的是主管,则必须通过添加第二个
%
来转义%%h
符号,例如-n worker1@%%h