Подтвердить что ты не робот

Как устранить тайм-аут выхода celeryd при работе на Heroku (ошибка R12)?

Я запускаю celeryd на диване Heroku. Когда я его закрыл и ранее обработал (хотя бы завершен) хотя бы одну задачу, он не закрывается должным образом, и я получаю сообщение об ошибке R12 (время выхода) из Heroku.

Вот как я запускаю celeryd из моего Procfile (через Django и django-celery):

celeryd: python manage.py celeryd -E --loglevel=INFO

Вот что я делаю, чтобы вызвать его:

> heroku ps:scale web=0 celeryd=0 --app myapp

И вот вывод журнала, который я получаю:

2012-09-07T12:56:31+00:00 heroku[celeryd.1]: State changed from up to down
2012-09-07T12:56:31+00:00 heroku[api]: Scale to celeryd=0, web=1 by [email protected]
2012-09-07T12:56:32+00:00 heroku[web.1]: State changed from up to down
2012-09-07T12:56:32+00:00 heroku[api]: Scale to web=0 by [email protected]
2012-09-07T12:56:34+00:00 heroku[celeryd.1]: Stopping all processes with SIGTERM
2012-09-07T12:56:35+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2012-09-07T12:56:37+00:00 heroku[web.1]: Process exited with status 143
2012-09-07T12:56:43+00:00 heroku[celeryd.1]: Error R12 (Exit timeout) -> At least one process failed to exit within 10 seconds of SIGTERM
2012-09-07T12:56:43+00:00 heroku[celeryd.1]: Stopping remaining processes with SIGKILL
2012-09-07T12:56:45+00:00 heroku[celeryd.1]: Process exited with status 137

Первоначально я испытал это на сельдерее 2.5.5. Теперь я обновился до 3.0.9, и у меня все еще есть та же проблема.

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

Я не знаю, что еще проверить. Любая идея, как я могу устранить эту проблему? Что может заблокировать сельдерея от ответа на Heroku SIGTERM, когда задача уже завершена?

4b9b3361

Ответ 1

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

Рабочий с аргументом -B неправильно закрыл экземпляр бита.

Итак, если вы используете взлом сельдерея внутри рабочего экземпляра, вам может потребоваться обновление.