记录一次celery+rabbitmq的bug修复过程
来源:互联网 发布:百度文库财富 淘宝 编辑:程序博客网 时间:2024/06/06 00:15
问题现象
线上的爬虫服务使用celery+rabbitmq进行任务分发,之前一直没有出现过问题,不过有一天早上,忽然所有的服务都停了。后台日志显示的问题是,
[2017-09-25 01:10:30,496: ERROR/MainProcess] Process 'Worker-1' pid:5406 exited with 'exitcode 1'[2017-09-25 01:10:34,521: ERROR/MainProcess] Timed out waiting for UP message from <Worker(Worker-3, started daemon)>[2017-09-25 01:10:34,594: ERROR/MainProcess] Process 'Worker-3' pid:5609 exited with 'signal 9 (SIGKILL)'
我的celery使用supervisor进行配合,诡异的情况就是直接使用celery命令执行完全没有问题,但是使用supervisor启动后台就一直报这个错误,而且这个异常不会导致worker退出,supervisor就会认为进程是正常进行的。重启各种服务后稍微好用了一会儿,然后又陆续的进入这个错误的节奏。
使用的版本是 celery3.1.15
修复过程
首先是网上的一种方法,在celery命令的最后加上 -P gevent。这样运行后出现另一个问题,在运行了一段时间后进行就停住了,而且没有任何异常的日志,连接等一切都正常,心跳包也能发,但是worker就是不去获取新任务。 最后,在尝试了各种方案一天之后,无奈选择了最笨的方案--将使用到工具升级到最新版本。最后celery升级到了4.1.0。然后就莫名的好用了。不过这个过程中伴随这一些微小的修改,比如自定义的路由MyRouter方法无法使用了,按照最新文档改成了例子中的样子,然后apply_async的参数需要处理一下,在升级以后会报编码错误。
另外在新版本启动后出现另一个问题,不过参照https://github.com/celery/celery/issues/3675
pip uninstall librabbitmq
后得以解决
阅读全文
0 0
- 记录一次celery+rabbitmq的bug修复过程
- 记录一次软件Bug发生的过程
- 记一次erlang分布式系统的bug修复过程
- sql2java:一次外科手术式的bug修复过程
- celery、rabbitmq的使用
- 记一次不愉快的bug修复
- 记录一次文件系统损坏的修复
- bug修复记录
- RDA8826 bug修复记录
- day36--[bug]修复记录
- 记录一次impdp的过程
- 一次调试c++ bug的记录
- 一次BUG定位的过程与总结
- 记一次 BUG 的排查过程
- celery的定时任务记录
- 记一次线上分布式redis服务BUG发现与修复过程
- 菜鸟学习celery的过程
- 记一次grub丢失后的修复记录
- Spark基础:使用维基百科数据集来用Spark进行原型实验
- Strata + Hadoop World 北京大会早期门票价格将在7月8日周五截止
- 使用 replace 更新某表中某个字段详细内容
- 欧洲核子研究组织如何预测新的流行数据集
- Strata+Hadoop World 北京大会日程发布
- 记录一次celery+rabbitmq的bug修复过程
- Strata+Hadoop World 北京首届会议
- 日志和实时流计算处理
- 机器智能的未来
- 来自Strata+Hadoop World 伦敦会议的主题演讲
- 预测维护和预测分析
- 来自Strata+Hadoop World 伦敦会议的主题演讲
- 认知应用:大数据的下个转折点
- 数据科学中“专业化”意味着什么