2013-06-12 21 views
12

W jaki sposób diagnozujesz, dlaczego manage.py celerybeat nie wykonuje żadnych zadań?Celerybeat nie wykonuje okresowych zadań

biegnę celerybeat poprzez supervisord z poleceniem:

/usr/local/myapp/src/manage.py celerybeat --schedule=/tmp/celerybeat-schedule-myapp --pidfile=/tmp/celerybeat-myapp.pid --loglevel=INFO 

Supervisord wydaje się uruchomić celerybeat dobrze, a plik log pokazuje:

[2013-06-12 13:17:12,540: INFO/MainProcess] Celerybeat: Starting... 
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new __version__ field 
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new tz field 
[2013-06-12 13:17:12,572: WARNING/MainProcess] Reset: Account for new utc_enabled field 

mam kilka zadań pokazujące jak okresowe włączony na http://localhost:8000/admin/djcelery/periodictask, który powinien być uruchamiany co kilka minut. Jednak dziennik selera nigdy nie pokazuje niczego, co zostanie wykonane. Dlaczego miałoby to być?

Odpowiedz

18

celerybeat wykona tylko zadanie schecdule, ale nie wykona go. Aby wykonać zadanie, musisz także uruchomić pracownika. Możesz zacząć razem od selera i pracownika. używam "celeryd -B"

W Twoim przypadku powinno to wyglądać tak:

/usr/local/myapp/src/manage.py pracownik seler --beat --schedule =/tmp/celerybeat harmonogramem-MojaApl --pidfile =/tmp/celerybeat-myapp.pid --loglevel = INFORMACJE

lub

/usr/lokalnym/m Yapp/src/manage.py celeryd -B --schedule =/tmp/celerybeat harmonogramem-MojaApl --pidfile =/tmp/celerybeat-myapp.pid --loglevel = INFORMACJE

+0

Cześć @YoK - Możesz tu pomóc, prowadzę selekcja selera przez selera multi z opcją --beat i --schedule, jednak żadne zadania nie są wykonywane. Próbowałem dekorować zadanie '@ app.periodic_task' przy pomocy' CELERY_IMPORTS = ("tasks",) 'ale bez powodzenia. – Greg0ry

Powiązane problemy