Цветок не отображает всех рабочих для сельдерея

Я запускаю сельдерей на двух серверах с одним Redis в качестве брокера.

Команда запуска Celery выглядит следующим образом:

celery multi start 2 -A app_name

Команда запуска цветка:

celery flower -A app_name --address=10.41.31.210 --port=5555

В выводе цветка есть несколько предупреждений:

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

И самое странное для меня - не все воркеры отображаются в дашборде Цветка. Похоже, что после каждого перезапуска цветка отображаются только некоторые воркеры. Из-за моих стартовых скриптов - должно быть минимум 8 воркеров, но я вижу 4 или иногда 6.

Ищу любое решение или совет. Спасибо.

P.s. У меня нет проблем с одними и теми же сервисами, когда для сельдерея используется только один сервер.


person Samriang    schedule 23.08.2016    source источник
comment
ты нашел решение?   -  person Pankaj Jackson    schedule 27.09.2017
comment
@PankajJackson проверить мой ответ   -  person Sardorbek Imomaliev    schedule 27.06.2019


Ответы (2)


Проблема в том, что цветок начинается раньше, чем сельдерей готов.

Это можно легко проверить с помощью 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
person Sardorbek Imomaliev    schedule 07.02.2019
comment
timeout -t 10 не сработало так, как ожидалось, поэтому я заменил его на timeout 10s, и это, похоже, сработало лучше. - person Chad; 05.03.2019
comment
@Chad, какую операционную систему ты используешь? - person Sardorbek Imomaliev; 05.03.2019
comment
Я использую образ докера python:3.6-slim, который, как мне кажется, взят из Debian. - person Chad; 05.03.2019

Попробуй это :

shell > celery -A app_name worker -l info

another shell > celery -A djangocelery flower

оно работает....

person hassanzadeh.sd    schedule 25.07.2019