Как исправить эту ошибку при запуске задачи сельдерея

Когда я пытаюсь запустить этот код, он выдает ошибку, я хочу запустить task_number_one и print_test как периодическую задачу, но она выдает одну и ту же ошибку для обоих.

from celery.task import periodic_task
from celery.schedules import crontab
from celery import task
@task()
def task_number_one():
    print("Celery Task Working...")

@periodic_task(run_every=crontab(minute='10', hour='6,8,9,10,11,12'))
def print_test():
   print(1)

task_number_one.delay()

Я получаю эту ошибку ниже

[2019-09-18 17:21:17,093: ERROR/MainProcess] Received unregistered task of type 'page.tasks.task_number_one'.
The message has been ignored and discarded.

Did you remember to import the module containing this task?
Or maybe you're using relative imports?

Please see
http://docs.celeryq.org/en/latest/internals/protocol.html
for more information.

The full contents of the message body was:
'[[], {}, {"callbacks": null, "errbacks": null, "chain": null, "chord": null}]' (77b)
Traceback (most recent call last):
  File "/home/naanal/venv/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", line 559, in on_task_received
    strategy = strategies[type_]
KeyError: 'page.tasks.task_number_one'

person mageshwaran    schedule 18.09.2019    source источник
comment
Вы должны импортировать эту задачу в файл, где у вас хранится ваш объект Celery(), я думаю..   -  person Nf4r    schedule 18.09.2019
comment
Возможный дубликат Celery Received незарегистрированной задачи типа (пример запуска)   -  person Ahmed Magdy    schedule 18.09.2019


Ответы (1)


Если вы используете celery v4, вы регистрируете задачу иначе, чем в v3. Для v4 используйте следующее:

from myapp.celery import app

@app.task
def task_number_one():
    print("Celery Task Working...")
person 2ps    schedule 18.09.2019