Я написал приложение django с именем «task» и добавил его в * INSTALLED_APPS *.
Однако, когда я попытался вызвать его в оболочке django, возникло исключение NotRegistered.Подробная информация ниже:
from task.tasks import add
from celery import registry
# 'task.tasks.add' is registered like below
registry.tasks # 'task.tasks.add': <@task: task.tasks.add>
# Call add()
r = add.delay(3, 4)
r.successful() # print "False"
################ celery debug info: #############################
The full contents of the message body was:
{'retries': 0, 'task': 'task.tasks.add', 'args': (3, 4), 'expires': None, 'eta': None, 'kwargs': {}, 'id': '36d25389-7a0b-4a0a-98f8-d7a17ef9192e'}
Traceback (most recent call last):
File "/usr/local/lib/python2.6/site-packages/celery/worker/consumer.py", line 427, in receive_message
eventer=self.event_dispatcher)
File "/usr/local/lib/python2.6/site-packages/celery/worker/job.py", line 297, in from_message
on_ack=on_ack, delivery_info=delivery_info, **kw)
File "/usr/local/lib/python2.6/site-packages/celery/worker/job.py", line 261, in __init__
self.task = registry.tasks[self.task_name]
File "/usr/local/lib/python2.6/site-packages/celery/registry.py", line 66, in __getitem__
raise self.NotRegistered(key)
NotRegistered: 'task.tasks.add'
ОБНОВЛЕНО:
Определение моей задачи:
from celery.task import task
@task
def add(x, y):
return x + y