Python 检查我所有的员工是否都在芹菜网上

Python 检查我所有的员工是否都在芹菜网上,python,django,asynchronous,celery,Python,Django,Asynchronous,Celery,我有两名员工在运行: 芹菜-项目工人-Q OneAtTimeQueue-c1-l信息 芹菜-A项目工人-B-l信息 第一个是让任务一次执行一个任务。这就是为什么它有一个并发性 第二个是其他任务,不需要一次一个,这是周期性任务的节拍 当我使用: celery -A project status 它只显示: celery@project: OK 1 node online. 如何检查这两名员工是否在线?好吧,我认为最好使用: ps aux| grep芹菜 然后我可以查看两个进程是否都在运行。建

我有两名员工在运行:

  • 芹菜-项目工人-Q OneAtTimeQueue-c1-l信息

  • 芹菜-A项目工人-B-l信息

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

    第二个是其他任务,不需要一次一个,这是周期性任务的节拍

    当我使用:

    celery -A project status
    
    它只显示:

    celery@project: OK
    
    1 node online.
    

    如何检查这两名员工是否在线?

    好吧,我认为最好使用:

    ps aux| grep芹菜

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

    建议在一台主机上运行多个辅助进程时使用唯一的名称。尝试添加
    -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
    指定名称的情况下加速工作节点,您很可能会收到如下
    DuplicateNodeWarning
    警告:

    /usr/local/lib/python3.4/site packages/芹菜/app/control.py:36:DuplicateNodeName警告:收到来自节点名称的多个答复:celery@hostname.

    其次,您可以使用芹菜远程命令Ping检查所有在线工作者(因为他们将用
    pong
    响应),Ping命令将向所有芹菜工作者节点广播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)),
    

    这将只显示与运行它的机器相关的信息。芹菜的一个常见场景是在远程节点上运行worker。Devy,我也收到了
    duplicatenodename
    警告。您能否说明这是否会在任务执行中产生任何错误?还是可以忽略?@HassanBaig DuplicateNodeWarning是一个警告,而不是致命的错误,因此工作人员将仍然运行。但是,我更愿意修复它们。基本上,使用
    -n
    来指定节点名称,这样它们就不会默认为相同的名称,正如错误消息中指出的那样。嗯,我正在使用supervisor来处理芹菜工人。我已经在我的芹菜.conf文件中定义了
    process\u name=%(program\u name)s\u%(process\u num)02d
    numprocs=5
    。根据
    supervisorctl
    ,进程确实有单独的名称。但它们都在同一个芹菜“节点”下,是这样吗?