我写了一个文件 mytasks.py
from celery import Celery
celery = Celery("tasks",
broker='redis://localhost:6379/0',
backend='redis')
@celery.task
def add(x,y):
return x+y
Run Code Online (Sandbox Code Playgroud)
并task.py为后续
from mytasks import add
add.delay(1,1)
Run Code Online (Sandbox Code Playgroud)
我已经启动了redis服务器,我已经启动了芹菜服务器.但是当我运行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'
Run Code Online (Sandbox Code Playgroud)
可能是什么原因
Roh*_*hal 13
嘿,我已经解决了问题,我做了一件事,我补充说
CELERY_IMPORTS=("mytasks")
Run Code Online (Sandbox Code Playgroud)
在我的celeryconfig.py文件中,我成功了.