Диспетчер Dotcloud показывает ошибку, но процесс запущен

Моя установка dotcloud (django-celery with rabbitmq) работала неделю назад - процессы запускались нормально, а журналы были чистыми. Тем не менее, я недавно повторил (без обновления какого-либо кода), и теперь журналы говорят, что процессы не запускаются, даже если кажется, что они работают.

Журнал супервизор

dotcloud@hack-default-www-0:/var/log/supervisor$ more supervisord.log
2012-06-03 10:51:51 836 CRIT Установите uid для пользователя 1000 2012-06-03 10: 51: 51 836 ПРЕДУПРЕЖДЕНИЕ Включено дополнительно файл "/etc/supervisor/conf.d/uwsgi.c
onf" во время синтаксического анализа 2012-06-03 10:51:51,836 ПРЕДУПРЕЖДЕНИЕ Включен дополнительный файл "/home/dotcloud/current/supervi
sord.conf" во время синтаксического анализа 2012-06-03 10:51:51,938 Инициализирован интерфейс супервизора RPC интерфейса INFO 2012-06-03 10:51:51,938 WARN cElementTree не установлен, используется более медленный синтаксический анализатор XML для XML-RPC
2012-06-03 10:51:51,938 CRIT Server 'unix_http_server'работает без какой-либо проверки подлинности HTTP 2012-06-03 10:51:51,946 INFO демонизация процесса супервизора 2012-06-03 10:51:51,947 Супервизор INFO запущен с pid 144
2012-06-03 10:51:53,128 INFO порождал: 'celerycam' с pid 159
2012-06-03 10:51:53,133 порождал информацию: 'apnsd' с pid 161
2012-06-03 10:51:53,148 INFO порождал: 'djcelery' с pid 164
2012-06-03 10:51:53,168 ИНФОРМАЦИЯ порождена: 'uwsgi' с pid 167
2012-06-03 10:51:53,245 ИНФО завершена: djcelery (статус выхода 1; не ожидается)
2012-06-03 10:51:53,247 Информация вышла: celerycam (состояние выхода 1; не ожидается)
2012-06-03 10:51:54,698 Информация появилась: 'celerycam' с pid 176
2012-06-03 10:51:54,698 INFO успешно: apnsd перешел в состояние RUNNING, процесс запущен более чем на 1 секунду (startsecs)
2012-06-03 10:51:54,705 INFO породил: 'djcelery' с pid 177
2012-06-03 10:51:54,706 INFO успешно: uwsgi вошел в состояние RUNNING, процесс запущен более чем на 1 секунду (startsecs)
2012-06-03 10:51:54,731 INFO завершено: djcelery (состояние выхода 1; не ожидается)
2012-06-03 10:51:54,754 ИНФО завершено: celerycam (состояние выхода 1; не ожидается)
2012-06-03 10:51:56,760 ИНФО появилось: 'celerycam' с pid 178
2012-06-03 10:51:56,765 ИНФОРМАЦИЯ появилось: 'djcelery' с pid 179
2012-06-03 10:51:56 790 INFO завершено: celerycam (состояние выхода 1; не ожидается) 2012-06-03 10: 51: 56 791 INFO завершено: djcelery (состояние выхода 1; не ожидается))
2012-06-03 10:51:59,798 ИНФОРМАЦИЯ порождена: 'celerycam' с pid 180
2012-06-03 10:52:00,538 ИНФОРМАЦИЯ порождена: 'djcelery' with pid 181
2012-06-03 10:52:00,565 ИНФОРМАЦИЯ выход: celerycam (состояние выхода 1; не ожидается)
2012-06-03 10:52:00,571 ИНФОРМАЦИЯ сдана: celerycam перешел в ФАКТИЧЕСКОЕ состояние, слишком много попыток повторного выполнения слишком быстро 2012-06-03 10: 52: 00,573 ИНФО завершено: djcelery (состояние выхода 1; не ожидается) 2012-06-03 10: 52: 01,575 ИНФОРМАЦИЯ сдана: djcelery перешел в состояние FATAL, слишком много попыток запускается слишком быстро dotcloud @ hack-default-www-0: / var / log / supervisor $

Журнал ошибок:

dotcloud @ hack-default-www-0: / var / log / supervisor $ more djcelery_error.log
Traceback (последний вызов был последним):
  Файл "hack/manage.py", строка 2, в 
    из django.core.management импорт execute_manager
Ошибка импорта: нет модуля с именем django.core.management
Traceback (последний вызов был последним):
  Файл "hack/manage.py", строка 2, в 
    из django.core.management импорт execute_manager
Ошибка импорта: нет модуля с именем django.core.management
Traceback (последний вызов был последним):
  Файл "hack/manage.py", строка 2, в 
    из django.core.management импорт execute_manager
Ошибка импорта: нет модуля с именем django.core.management
Traceback (последний вызов был последним):
  Файл "hack/manage.py", строка 2, в 
    из django.core.management импорт execute_manager
Ошибка импорта: нет модуля с именем django.core.management
dotcloud@ взломать дефолтный-WWW-0: / вар / Журнал / супервайзер $

Statusctrl показывает, что некоторые процессы запущены, но pids разные. Кроме того, функциональность сельдерея, кажется, работает нормально. Сообщения обрабатываются, и я вижу, что сообщения обрабатываются в интерфейсе администратора django (запущена камера dj celery).

# supervisorctl status
APNSD RUNNING PID 225, время безотказной работы 0:00:44
celerycam                        RUNNING    pid 224, время безотказной работы 0:00:44
djcelery                         RUNNING    pid 226, время безотказной работы 0:00:44

Файл Supervisord.conf:

[Программа:djcelery]
каталог = /home/dotcloud/current/
command = python hack/manage.py celeryd -E -l информация -c 2
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log

[Программа:celerycam]
каталог = / home / dotcloud / current /
command = python hack / manage.py celerycam
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log

http://jefurii.cafejosti.net/blog/2011/01/26/celery-in-virtualenv-with-supervisord/ говорит, что проблема может быть в том, что используемый питон неправильный, поэтому я явно указал питон в файле супервизора. Теперь это работает, но не объясняет, что я вижу выше и почему мне пришлось изменить свою конфигурацию, когда она работала нормально на прошлой неделе.

Кроме того, не все пиды выстраиваются в ряд:

2012-06-03 11: 19: 03,045 CRIT-сервер 'unix_http_server' работает без HTTP
проверка подлинности
2012-06-03 11:19:03,051 INFO, демонизирующая процесс надзора
2012-06-03 11:19:03,052 INFO supervisord начался с pid 144
2012-06-03 11:19:04,061 ИНФОРМАЦИЯ породила 'celerycam' с pid 151
2012-06-03 11: 19: 04,066 ИНФОРМАЦИЯ порождена: 'apnsd' с pid 153
2012-06-03 11: 19: 04,085 Появилось INFO: 'djcelery' с pid 155
2012-06-03 11:19:04,104 ИНФОРМАЦИЯ породила: 'uwsgi' с pid 156
2012-06-03 11:19:05,271 ИНФОРМАЦИЯ об успешном выполнении: камера celerycam перешла в состояние RUNNING, процесс h
в течение> 1 секунды (startsecs)
2012-06-03 11:19:05,271 ИНФОРМАЦИЯ успешно: apnsd перешел в состояние RUNNING, процесс имеет
более чем на 1 секунду (startsecs)
2012-06-03 11:19:05,271 ИНФОРМАЦИЯ об успехе: djcelery перешел в состояние RUNNING, процесс ha
s просидел> 1 секунды (startsecs)
2012-06-03 11:19:05,271 ИНФОРМАЦИЯ успешно: uwsgi вошел в состояние ВЫПОЛНЕНИЯ, процесс имеет
более чем на 1 секунду (startsecs)

статус показывает, что кулачки сельдерея не выстраиваются в ряд:

# supervisorctl status
apnsd RUNNING    pid 153, время безотказной работы 0:06:17
celerycam RUNNING    pid 150, время безотказной работы 0:06:17
djcelery RUNNING    pid 155, время безотказной работы 0:06:17

1 ответ

Решение

Мое первое предположение заключается в том, что вы используете неправильный двоичный файл Python (system питон вместо virtualenv Python), и это вызывает эту ошибку (ниже), потому что это system В двоичном файле Python этот пакет не установлен.

  Traceback (most recent call last):
  File "hack/manage.py", line 2, in 
    from django.core.management import execute_manager
  ImportError: No module named django.core.management

Вы должны изменить свой supervisord.conf на следующий, чтобы убедиться, что вы указываете на правильную версию Python.

[program:djcelery]
directory = /home/dotcloud/current/
command = /home/dotcloud/env/bin/python hack/manage.py celeryd -E -l info -c 2
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log

[program:celerycam]
directory = /home/dotcloud/current/
command = /home/dotcloud/env/bin/python hack/manage.py celerycam
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log

Путь питона пошел от python в /home/dotcloud/env/bin/python,

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

Другие вопросы по тегам