2016-03-06 4 views
0

У меня есть полностью работающий Django 1.8.5 + Celery 3.1.18 на localhost с периодическими настройками задач. Но на сервере (Ubuntu 14.04) мне нужен дополнительный файл celerybeat.conf (first is celery.conf), чтобы периодически выполнять задачи на сервере. Если я запустить вручную сельдерей на сервере простых задач работают (UPD: также периодические задачи тоже работает с -B вариант):Django: CeleryBeat с супервизором на сервере не планирует периодическую задачу

celery worker -A engine -B -l debug 

но если работать с Supervisor он начинает, обнаружить периодическую задачу (в settings.py Джанго), но ничего не делают. Нет ошибок в журналах (только предупреждения), нет планирования задач

sudo supervisorctl reread 
sudo supervisorctl restart celery 

Как исправить?

здесь settings.py

# Celery settings 

BROKER_URL = 'django://' 

from kombu.serialization import registry 
registry.enable('pickle') 
import djcelery 
djcelery.setup_loader() 

CELERY_ACCEPT_CONTENT = ['json'] 
CELERY_TASK_RESULT_EXPIRES=3600 
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend' 
CELERY_RESULT_SERIALIZER = 'json' #json pickle msgpack 
CELERY_TASK_SERIALIZER = 'json' 
CELERY_IMPORTS=["wall.tasks"] 
CELERY_TIMEZONE = 'Africa/Nairobi' 
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" 
CELERYBEAT_SCHEDULE_FILENAME = '/var/lib/celery/beat.db' 

SECRET_KEY = 'nbx.........#)i0onegi)as%d80hpcxp98%d9sphh^aqgt' 
from celery.schedules import crontab 
CELERYBEAT_SCHEDULE = { 
    'get_all_data': { 
     'task': 'tasks.get_all_data', 
     'schedule': crontab(minute="*/4"), 
     #'args': (16, 16), 
    }, 
} 
+0

Вы пробовали работника с дополнительным флагом '-B' (для бит). Этот флаг также должен быть указан в настройках CELERY_OPTS в конфигурационном файле демона – schwobaseggl

+0

@schwobaseggl Да: в celery.conf попытался добавить -B: command =/usr/local/bin/celery worker -A engine -loglevel = INFO Также в команде celerybeat.conf =/usr/local/bin/celery worker -A engine -B --llusvel = INFO, но оба варианта не работают –

ответ

1

Вы можете оставить celerybeat.conf и supervisord.conf здесь? Я нашел очень хороший учебник по адресу http://www.lexev.org/en/2014/django-celery-setup/

+0

Я использовал другой учебник, думаю, моя ошибка не была перезагрузкой настроек Supervisor: sudo supervisorctl reload , Я сделал sudo supervisorctl reeread и подумал, что это будет обновление настроек, но это не так. Теперь все работает –

 Смежные вопросы

  • Нет связанных вопросов^_^