Received unregistered task of type ‘XXX’ Celery报错

[2018-11-06 10:23:48,346: DEBUG/MainProcess] basic.qos: prefetch_count->4
[2018-11-06 10:24:00,129: ERROR/MainProcess] Received unregistered task of type 'rub_jobs.tasktest'.
The message has been ignored and discarded.

Did you remember to import the module containing this task?
Or maybe you're using relative imports?

Please see
http://docs.celeryq.org/en/latest/internals/protocol.html
for more information.

The full contents of the message body was:
b'[[], {}, {"callbacks": null, "errbacks": null, "chain": null, "chord": null}]' (77b)
Traceback (most recent call last):
  File "c:\program files\python36\lib\site-packages\celery\worker\consumer\consumer.py", line 565, in on_task_received
    strategy = strategies[type_]
KeyError: 'rub_jobs.tasktest'

上网初步搜索了下,未找到答案,于是查看celery源码,在报错文件("c:\program files\python36\lib\site-packages\celery\worker\consumer\consumer.py", line 565)中加入调试语句

然后运行celery,查看打印的消息

可以看到,我自己写的task没有celery读进去。

所以这个应该是路径的问题, 于是在装饰器@app.task中加入参数name,就可以被celery读取到了


@app.task(name='rub_jobs.tasktest')
def tasktest():
    print('task test,[%s],args=(%s)' % (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),None) )

可以看到,我的rub_jobs.tasktest已经被celery读取了。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值