2012-08-24 67 views
10

的未注册的任务,我写了一个文件mytasks.py得到错误收到类型“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 

task.py如下

from mytasks import add 

add.delay(1,1) 

我已经开始Redis的服务器和我已经开始芹菜服务器。但是,当IM运行task.py然后我收到以下错误:

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' 

可能是什么原因possibel

回答

13

嘿,我已经解决了这个问题 我做了一两件事,我添加

CELERY_IMPORTS=("mytasks") 

在我的celeryconfig.py文件,我成功了。

+0

感谢,对我来说 – Anentropic

+0

它为我工作太努力:) –