Команда celery inspect ping
пригодится, так как она совершает целую поездку: она отправляет задание «ping» на брокера, рабочие отвечают, и сельдерей извлекает ответы.
Если предположить, что приложение называется tasks.add
, вы можете свистеть все рабочие:
/app $ celery inspect ping -A tasks.add
-> [email protected]: OK
pong
-> [email protected]: OK
pong
С aa7c21dd0e96
быть Docker имя хоста, и, таким образом, доступны в $HOSTNAME
.
пинговать один узел, вы должны запустить:
celery inspect ping -A tasks.add -d [email protected]$HOSTNAME
Здесь д обозначает назначения.
линия, чтобы добавить к вашему Dockerfile:
HEALTHCHECK CMD celery inspect ping -A tasks.add -d [email protected]$HOSTNAME
Примеры выходов:
/app $ celery inspect ping -A tasks.add -d fake_node
Error: No nodes replied within time constraint.
/app $ echo $?
69
нездоровое, если узел не существует или не отвечает
/app $ celery inspect ping -A tasks.add -d [email protected]$HOSTNAME
-> [email protected]: OK
pong
/app $ echo $?
0
Здорово, когда узел отвечает pong
.
/app $ celery inspect ping -d [email protected]$HOSTNAME
Traceback (most recent call last):
...
raise socket.error(last_err)
OSError: [Errno 111] Connection refused
/app $ echo $?
1
нездоровое, когда брокер не доступен - я удалил приложение, поэтому он пытается соединиться с локальным AMPQ и не Это не может удовлетворить ваши потребности, брокер является нездоровым, а не работник.