Flower 不显示芹菜的所有工人

Sam*_*ang 5 python celery flower

我在两台服务器上运行 celery,其中一个 redis 作为代理。

Celery 启动命令如下所示:

celery multi start 2 -A app_name
Run Code Online (Sandbox Code Playgroud)

花开始命令:

celery flower -A app_name --address=10.41.31.210 --port=5555
Run Code Online (Sandbox Code Playgroud)

在花的输出中有一些警告:

WARNING:flower.api.control:'stats' inspect method failed
WARNING:flower.api.control:'active_queues' inspect method failed
WARNING:flower.api.control:'registered' inspect method failed
WARNING:flower.api.control:'scheduled' inspect method failed
WARNING:flower.api.control:'active' inspect method failed
WARNING:flower.api.control:'reserved' inspect method failed
WARNING:flower.api.control:'revoked' inspect method failed
WARNING:flower.api.control:'conf' inspect method failed
Run Code Online (Sandbox Code Playgroud)

对我来说最奇怪的事情 - 并非所有工人都显示在 Flower 的仪表板中。似乎每朵花重启后只显示一些工人。由于我的启动脚本 - 应该至少有 8 个工人,但我看到 4 个或有时 6 个。

寻找任何解决方案或建议。谢谢你。

Ps 当只有一台服务器用于芹菜工人时,我对相同的服务没有任何问题。

Sar*_*iev 5

这里的问题是,花在芹菜准备好之前就开始了

这可以很容易地检查 celery inspect ping

这是我项目中的示例 start_flower.sh

#!/bin/sh

until timeout -t 10 celery -A project inspect ping; do
    >&2 echo "Celery workers not available"
done

echo 'Starting flower'
celery -A project flower
Run Code Online (Sandbox Code Playgroud)

  • `timeout -t 10` 似乎没有按预期工作,所以我用 `timeout 10s` 替换它,这似乎效果更好。 (3认同)