WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

celery worker错误”Received unregistered task of type ‘tasks.add’”解决

更新时间:2015-03-09 12:22 作者:佚名点击:
在Python开发的分布式任务调度模块celery的worker出现 ”Received unregistered task of type ‘tasks.add’”错误,下面是本人的解决方法。

试玩了一下celery的priodic task,后来遇到了”Received unregistered task of type ‘tasks.add’”的错误,排查这个问题过程有点tricky,记录一下.

错误提示为:

代码如下  
[2014-08-30 04:34:14,913: ERROR/MainProcess] Received unregistered task of type 'tasks.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': 'tasks.add', 'utc': False, 'args': (4, 4), 'expires': None, 'eta': None, 'kwargs': {}, 'id': '841bc21f-8124-436b-92f1-e3b62cafdfe7'}

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer.py", line 444, in receive_message
self.strategies[name](message, body, message.ack_log_error)
KeyError: 'tasks.add'


这个错误信息提示的再明显不过了,一看就知道是什么问题. 但是在排查问题过程中,我思路比较僵化,一直认为时rabbitmq那边一直有消息没有被消费. 甚至后来还删除了RabbitMQ上的所有queue和message, 还重装了rabbitmq-server软件; 同时,还用一些工具去做Celery和RabbitMQ的monitoring. 也都没解决问题.

以为我本地没有再产生这样的新消息了啊,怎么rabbitmq中的消息一直都有呢?

后来的后来,我才发现,我本地的最开始配置priodic task的beat进程并没有完全推出,似乎我时用ctrl+c去结束掉主进程的,后来居然观察到其子进程并没有推出,还在继续运行,所以那个名为tasks.add的task还在按照10s的间隔运行,而我的worker代码中已经修改或删除了处理的task,所以worker并不能处理tasks.add这个任务,所以报了上面的错误.

另外, 最开始第一次出现这个错误的根本原因是,在使用priodic task时调用的是”tasks.add”,而celery worker这边可用的task其实是aew.tasks.add, 这个就时任务名称的配置问题. 可以用”celery -A aew inspect registered”命令(其中aew时我自己demo用的APP)去查看该APP中的所有注册了的task.

教训主要有两点:

1. 运行celery,进程退出后,要check一下子进程是否仍在运行.

2. 在配置priodic task时要确保task全名是在inspect registered中查到的注册了的任务, 要保持一致,否则worker无法执行这些任务.

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容