看看我所有的工人是否都在线

2024-09-30 16:41:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个工人在运行:

  1. celery -A project worker -Q OneAtTimeQueue -c1 -l Info

  2. {/cd2}

第一种是让任务一次执行一个。这就是为什么它有一个并发性。在

第二个是其他不需要一次完成的任务,它是周期性任务的节拍。在

当我使用:

celery -A project status

它只显示:

^{pr2}$

我如何检查这两个工人是否在线?在


Tags: infoprojectstatusceleryworker工人周期性c1
3条回答

Celery Workers Guide建议在单个主机上运行多个worker时使用唯一名称。尝试添加-n参数,然后运行状态:

celery -A project worker -Q OneAtTimeQueue -c1 -l Info -n worker1
celery -A project worker -B -l info -n worker2
celery -A project status

首先,要在不使用-n指定名称的情况下启动工作节点,您很可能会收到这样的DuplicateNodenameWarning警告:

/usr/local/lib/python3.4/site-packages/celery/app/control.py:36: DuplicateNodenameWarning: Received multiple replies from node name: celery@hostname.

其次,您可以使用Celery Remote命令Ping检查所有在线工作节点(因为他们将用pong响应),Ping命令将向所有Celery worker节点广播Ping并只报告活动的节点,即

$ celery -A project inspect ping
celery@hostname: OK
        pong
celery@hostname: OK
        pong
/usr/local/lib/python3.4/site-packages/celery/app/control.py:36: DuplicateNodenameWarning: Received multiple replies from node name: celery@hostname.
Please make sure you give each node a unique nodename using the `-n` option.
  pluralize(len(dupes), 'name'), ', '.join(sorted(dupes)),

好吧,我认为最好是使用:

ps aux | grep celery

然后我可以查看两个进程是否都在运行。在

相关问题 更多 >