首页 文章

芹菜教程:NotRegistered错误

提问于
浏览
4

我正在尝试获得芹菜的官方教程,但不断收到此错误:

D:\ test>芹菜 - 任务工作者--loglevel = info --------------芹菜@ BLR122S v3.0.17(Chiastic Slide)---- **** - --- --- * * * - [配置] - * - **** --- . 经纪人:amqp:// guest @ localhost:5672 // - ** ---------- . app:任务:0x2a76850 - ** ---------- . 并发:2(进程) - ** ---------- . 事件:OFF(启用-E监视此工作人员) - ** ---------- - * --- * --- [队列] - ******* ---- . 芹菜:交换:芹菜(直接)装订:芹菜--- ***** ----- [任务] . tasks.add [2013-03-29 17:50:52,533:WARNING / MainProcess] celery @ BLR122S准备就绪 . [2013-03-29 17:50:52,568:INFO / MainProcess] consumer:连接到amqp:// guest @ 127.0.0.1:5672// . [2013-03-29 17:51:32,496:INFO / MainProcess]来自经纪人的任务:tasks.add [8345 9233-ce54-40ed-a2a8-ee0d60768006] [2013-03-29 17:51:32,562:ERROR / MainProcess]任务tasks.add [83459233-ce54-40ed-a 2a8-ee0d60768006]引发异常:类型'tasks.add'的任务未注册,请确保已导入 . 回溯(最近一次调用最后一次):文件“C:\ Python27 \ lib \ site-packages \ billiard \ pool.py”,第293行,在worker result =(True,func(* args,** kwds))File“ C:\ Python27 \ lib \ site-packages \ celery \ task \ trace.py“,第320行,在_fast_trace_task中返回_tasks [task] .__ trace __(uuid,args,kwargs,request)[0]文件”C:\ Python27 \ lib \ site-packages \ celery \ app \ registry.py“,第20行,在__missing__中引发self.NotRegistered(key)NotRegistered:'tasks.add'

我安装了celery == 3.0.17和rabbitMQ .
然后通过“ D:\test>celery -A tasks worker --loglevel=info ”开始芹菜
tasks.add 似乎在[任务]中,但是通过以下方式调用:

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

失败了 . 有没有人有同样的问题?

Edit: 这是我的教程中的tasks.py复制 .

from celery import Celery

celery = Celery('tasks', broker='amqp://guest@localhost//')

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

2 回答

  • 1

    首先尝试导入任务,我建议你在交互式python环境中实现你的工作,比如python IDE,然后你这样做:

    • 导入任务

    在你写之前 tasks.add

  • 2

    以下将解决您的问题

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

    使用后进行更改后重新启动工作

    celery -A tasks worker --loglevel=info
    

相关问题