首页 新闻 搜索 专区 学院

kombu.exceptions.OperationalError: Cannot route message for exchange 'reply.celery.pidbox'

0
悬赏园豆:10 [待解决问题]

最近一直在使用celery做多进程并发任务,遇到一个非常棘手的问题, 我尝试过解决,但是收集各种方法,均未能解决我的问题。
问题: Celery多任务处理程序,任务采用类封装继承celery.task 的类Task来完成我的任务,当然任务中包含我的成功和失败重写的方法。当然我的程序不重要,随便的一个程序都会出现,kombu.exceptions.OperationalError错误,Cannot route message for exchange 'reply.celery.pidbox': Table emply or key no longer exists,我查得相关解释为redis中的key reply.celery.pidbox 被驱逐,导致无法路由的问题, 我从而我怀疑是redis的配置问题,我尝试过现有一直争取使用的redis集群,也会同样报出pidbox被驱逐的问题。进而我还是celery可能存在某种问题,请大神还望指点,多谢

错误信息如下:

kombu.exceptions.OperationalError:
Cannot route message for exchange 'reply.celery.pidbox': Table emply or key no longer exists

RuntimeError: pubsub connection not set: did you forget to call subscribe() or psubscribe()?

Celery version:
python 4.6.5
celery 4.3.0
redis 3.2.1 (Using the cluster)
kombu 4.6.2 (4.6.4 4.6.5 Try to release)

朝鲁梦_FQM的主页 朝鲁梦_FQM | 初学一级 | 园豆:184
提问于:2020-01-05 12:11
< >
分享
所有回答(1)
0

你的celery broker配置信息是什么样的?visibility_timeout?

Zioyi | 园豆:196 (初学一级) | 2020-01-05 14:35

你好,broker只配置了redis哨兵,并未配置visibility_timeout
如: BROKER_TRANSPORT_OPTIONS = {‘master_name’: 'mymaster'}

支持(0) 反对(0) 朝鲁梦_FQM | 园豆:184 (初学一级) | 2020-01-06 10:25

@朝鲁梦_FQM: kombu 4.6.2 (4.6.4 4.6.5 Try to release) 啥意思?4.6.5也试过了?
https://github.com/uktrade/data-hub-api/pull/2143

支持(0) 反对(0) Zioyi | 园豆:196 (初学一级) | 2020-01-06 11:34

@Zioyi: 你好,kombu 4.6.3 到 4.6.5 都有尝试,问题还是依然复现,同样对celery版本由4.3.0 升级到4.4.0还是会报错,错误信息如下
kombu.exceptions.OperationalError:Cannot route message for exchange 'reply.celery.pidbox': Table emply or key no longer exists
During handling of the above exception, another exception occurred
BrokenPipeError: [Errono 32] Broken pipe

支持(0) 反对(0) 朝鲁梦_FQM | 园豆:184 (初学一级) | 2020-01-06 15:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册