2015-12-06 10 views
0

Im использование django 1.8.7, django-сельдерей 3.1.17. Я хочу переопределить периодические задания сельдерея в local_settings, которые я включаю в конце файла основных настроек.Что такое правильный способ использования локальных настроек для celerybeat в Django?

Этот код в локальных настройках файла не работает:

BROKER_URL = 'amqp://test:[email protected]/' 
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" 
CELERYBEAT_SCHEDULE = { 
    "test_task": { 
     "task": "test.ptask", 
     "schedule": crontab(minute="*/5"), 
     "options": {'queue': 'slow_tasks'} 
    } 
} 
+0

Как вы управляете работниками сельдерея? используя 'manage.py' или' celeryd'? –

+0

celery -A test worker -l warn -Q slow_tasks --concurrency = 10 из корневой папки proj – Morg4n

ответ

0

При вызове сельдерей непосредственно он не будет подчиняться Джанго settings.py. Вместо этого позвоните по телефону

manage.py celery -A test worker -l warn -Q slow_tasks --concurrency=10 

Обратите внимание, что вы должны добавить django-сельдерей на свой INSTALLED_APP.

Также, пожалуйста, посетите эту страницу: http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#generic-initd-celerybeat-django-example

+0

Старый псевдоним команды «работник сельдерея». manage.py: ошибка: нет такой опции: -A 'manage.py celery -A test worker -l warn -Q slow_tasks --concurrency = 10' работает для меня – Morg4n

0

Проблема была также в CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler". Периодические задачи хранятся в БД, поэтому вам просто нужно удалить их с панели администратора.