Почему моя задача сельдерея не работает?

Я следую этому руководству: http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

Мой файл proj.celery:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from celery.schedules import crontab

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hc.settings')

app = Celery('hc')

app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()


@app.task
def debug_task(a):
    print a
app.conf.beat_schedule = {
    # Executes every Monday morning at 7:30 a.m.
    'debug-every-minute': {
        'task': 'tasks.debug_task',
        'schedule': crontab(),
        'args': ("BLa BLA BlA", ),
    },
}

также я добавил периодическую задачу в /admin/django_celery_beat/

Я понимаю, что нет смысла использовать в админке как app.conf.beat_schedule, так и Period_task, но я не вижу ожидающих записей после

Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

(ожидаю, что под этим будет написано бла-бла) Где я не прав?


person amazingbasil    schedule 01.02.2017    source источник
comment
Вы не увидите никаких операторов печати в консоли вашего приложения django, потому что задача celery будет выполняться в другом процессе. Если вы запустили сельдерей с celery -A proj worker -l info в оболочке, вы увидите вывод там.   -  person trixn    schedule 01.02.2017


Ответы (2)


Сельдерей

celery -A hc worker -B -l info
person itzMEonTV    schedule 01.02.2017
comment
что означает celery --app hc worker --beat --loglevel=INFO - person Tom Wojcik; 22.10.2020

Вы должны запустить команду python manage.py celery beat, чтобы запустить периодическую задачу и увидеть результаты. Только вы можете видеть результаты оператора печати задачи celery в своей оболочке celery, а не в обычной оболочке сервера запуска Django.

person MicroPyramid    schedule 01.02.2017
comment
./manage.py celery beat Неизвестная команда: 'celery' Введите 'manage.py help' для использования. 'django_celery_beat', 'django_celery_results', 'celery' находятся в INSTALLED_APPS - person Vassily; 01.02.2017
comment
Это работает только с установленным django-celery, что не является обязательным. - person trixn; 01.02.2017
comment
используйте 1_ - person MicroPyramid; 01.02.2017