2012-08-24 8 views
10

Pisałem plik mytasks.pybłąd coraz odebrane niezarejestrowanego zadania typu 'mytasks.add'

from celery import Celery 

celery = Celery("tasks", 
       broker='redis://localhost:6379/0', 
       backend='redis') 


@celery.task 
def add(x,y): 
     return x+y 

i task.py następująco

from mytasks import add 

add.delay(1,1) 

zacząłem serwera Redis i zacząłem serwera selera . ale kiedy im prowadzenie task.py następnie otrzymuję następujący błąd:

Received unregistered task of type 'mytasks.add'. 
The message has been ignored and discarded. 

Did you remember to import the module containing this task? 
Or maybe you are using relative imports? 
Please see http://bit.ly/gLye1c for more information. 

The full contents of the message body was: 
{'retries': 0, 'task': 'mytasks.add', 'eta': None, 'args': (1, 1), 'expires': None, 'callbacks': None, 'errbacks': None, 'kwargs': {}, 'id': 'a4792308-d575-4de4-8b67-26982cae2fa4', 'utc': True} (173b) 

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer.py", line 411, in on_task_received 
    strategies[name](message, body, message.ack_log_error) 
KeyError: 'mytasks.add' 

co może być powodem possibel

Odpowiedz

13

Hej mam rozwiązany problem zrobiłem jedną rzecz mogę dodać

CELERY_IMPORTS=("mytasks") 

w moim pliku celeryconfig.py i udało mi się.

+0

dzięki, pracował dla mnie – Anentropic

+0

to działa na mnie też :) –