芹菜教程:未注册

2024-09-30 00:26:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图获取celery的官方教程,但一直收到以下错误:

D:\test>celery -A tasks worker --loglevel=info
-------------- celery@BLR122S v3.0.17 (Chiastic Slide)
---- **** -----
--- * * * -- [Configuration]
-- * - **** --- . broker: amqp://guest@localhost:5672//
- ** ---------- . app: tasks:0x2a76850
- ** ---------- . concurrency: 2 (processes)
- ** ---------- . events: OFF (enable -E to monitor this worker)
- ** ----------
- *
--- * --- [Queues]
-- ******* ---- . celery: exchange:celery(direct) binding:celery
--- ***** -----
[Tasks]
. tasks.add
[2013-03-29 17:50:52,533: WARNING/MainProcess] celery@BLR122S ready.
[2013-03-29 17:50:52,568: INFO/MainProcess] consumer: Connected to amqp://guest@ 127.0.0.1:5672//.
[2013-03-29 17:51:32,496: INFO/MainProcess] Got task from broker: tasks.add[8345 9233-ce54-40ed-a2a8-ee0d60768006]
[2013-03-29 17:51:32,562: ERROR/MainProcess] Task tasks.add[83459233-ce54-40ed-a 2a8-ee0d60768006] raised exception: Task of kind 'tasks.add' is not registered, please make sure it's imported.
Traceback (most recent call last):

File "C:\Python27\lib\site-packages\billiard\pool.py", line 293, in worker

result = (True, func(*args, **kwds))
File "C:\Python27\lib\site-packages\celery\task\trace.py", line 320, in _fast_trace_task
return _tasks[task].__trace__(uuid, args, kwargs, request)[0]
File "C:\Python27\lib\site-packages\celery\app\registry.py", line 20, in __missing__
raise self.NotRegistered(key)
NotRegistered: 'tasks.add'

我安装了celery==3.0.17和rabbitMQ。
然后用“D:\test>celery -A tasks worker --loglevel=info
tasks.add似乎在[Tasks]中,但调用者:

>>> from tasks import add
>>> add.delay(1,1)
# Out: AsyncResult: 83459233-ce54-40ed-a2a8-ee0d60768006

上面的失败。有人有同样的问题吗?在

编辑: 这是我的任务.py从教程复制。在

^{pr2}$

Tags: pyaddtasklibpackageslinesitefile
2条回答

以下将解决您的问题

from tasks import add
res = add.delay(1,2) #call to add 
res.get() #get result

在更改后使用

^{pr2}$

首先尝试导入任务,我建议您在交互式python环境(如python IDE)中实现工作,然后执行以下操作:

  • 导入任务

在你写tasks.add之前

相关问题 更多 >

    热门问题