Aipo do Django Recebeu tarefa não registrada do tipo 'appname.tasks.add'
Seguindo a documentação e o projeto Demo Django aquihttps://github.com/celery/celery/tree/3.1/examples/django
Estrutura do Projeto
piesup2
|
piesup2
| |__init__.py
| |celery.py
| |settings.py
| |urls.py
reports
|tasks.py
|models.py
|etc....
My Code
piesup2/celery.py
from __future__ import absolute_import
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'piesup2.settings')
from django.conf import settings # noqa
app = Celery('piesup2')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
piesup2/__init__.py
from __future__ import absolute_import
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app # noqa
piesup2/reports/tasks.py
from __future__ import absolute_import
from celery import shared_task
@shared_task
def add(x, y):
return x + y
Depois de iniciar o Celery na linha de comando com:
celery -A piesup2 worker -l info
Quando tento executar uma tarefa no meu arquivo models.py, desta forma:
def do_stuff(self):
from reports.tasks import add
number = add.delay(2, 2)
print(number)
Estou tendo o erro a seguir:
[2016-08-05 16: 50: 31,625: ERROR / MainProcess] Tarefa não registrada recebida do tipo 'reports.tasks.add'. A mensagem foi ignorada e descartada.
Você se lembrou de importar o módulo que contém esta tarefa? Ou talvez você esteja usando importações relativas? Por favor, vejahttp://docs.celeryq.org/en/latest/userguide/tasks.html#task-names Para maiores informações.
O conteúdo completo do corpo da mensagem era: {'retornos de chamada': Nenhum, 'tentativas': 0, 'acorde': Nenhum, 'erros de retorno': Nenhum, 'tarefa': 'reports.tasks.add', 'args': [2, 2], 'timelimit': [None, None], 'kwargs': {}, 'id': 'b12eb387-cf8c-483d-b53e-f9ce0ad6b421', 'tasket': None, 'eta': None , 'expira': nenhum, 'utc': True} (258b) Traceback (última chamada mais recente): Arquivo "/home/jwe/piesup2/venv/lib/python3.4/site-packages/celery/worker/consumer .py ", linha 456, nas estratégias on_task_received [name] (mensagem, corpo, KeyError: 'reports.tasks.add'