Задание Upstart для запуска Celery не останавливает все рабочие процессы

Я написал задание Upstart для запуска сельдерея на моем сервере Ubuntu. Вот мой файл конфигурации с именем celeryd.conf

# celeryd - runs the celery daemon
#
# This task is run on startup to run the celery daemon

description "run celery daemon"

start on startup
expect fork
respawn

exec su - trakklr -c "/app/trakklr/src/trakklr celeryd --events --beat --loglevel=debug --settings=production"

Когда я выполняю sudo service celeryd start, процесс celeryd запускается нормально, и все x рабочих процессов запускаются нормально.

... но когда я выполняю sudo service celeryd stop, он останавливает большинство процессов, но несколько процессов остаются зависшими.

Почему это происходит? Я использую Сельдерей 2.5.3.


Вот проблема из трекера Github.

https://github.com/celery/django-celery/issues/142


person Mridang Agarwalla    schedule 17.10.2012    source источник


Ответы (2)


Я все еще использую init.d для запуска сельдерея, так что это может быть неприменимо. Имея это в виду, остановка службы сельдерея отправляет сигнал TERM в сельдерей. Это говорит рабочим не принимать новые задачи, но не прекращает существующие задачи. Поэтому, в зависимости от того, сколько времени требуется для выполнения ваших задач, вы можете видеть задачи в течение некоторого времени после того, как celery остановится. В конце концов, все они отключатся, если у вас нет другой проблемы.

person davidfischer    schedule 17.10.2012
comment
Похоже, это не проблема, потому что я проверил свою очередь задач из RabbitMQ, и ничего не было. В последнее время я вообще не ставлю задачи в очередь из-за какой-то другой разработки. Я обновился до Celery 3.x.x и надеюсь, что это решит проблему. Взгляните на мое редактирование: я думаю, что это ошибка. - person Mridang Agarwalla; 18.10.2012

Я не смог понять это, но, похоже, это проблема с моей старой версией сельдерея. Я нашел эту проблему, упомянутую в их системе отслеживания проблем, и я думаю, что это указывает на ту же проблему:

https://github.com/celery/django-celery/issues/142

Я обновил свой сельдерей и django-celery до версий 3.x.x, и эта проблема исчезла.

person Mridang Agarwalla    schedule 18.10.2012