pyspider连接rabbitmq ,结果出现socket.error: [Errno 104] Connection reset by peer 这样的报错信息

linux系统中:

pyspider+rabbitmq+mongodb环境下启动pyspider时出现socket.error: [Errno 104] Connection reset by peer 的错误信息。


首先,分享一下自己总结的做维护或者排除bug 的思路:

1.维护一定要学会定位错误所在。而定位错误日志就是一个相当好用的工具!
2.遇到问题查找资料去分析产生问题的原因有哪些。因为一般你找不到和你出错一模一样的信息的。只能通过原因去找出自己程序出问题的位置。

其次,感谢一下这两篇文章的作者。带给了我思路。

http://blog.sina.com.cn/s/blog_75df0af40100qcsv.html

以及    http://m.blog.csdn.net/blog/zjk2752/21236725

好吧。把博主的错误贴上来吧。

根据上面两篇文章的提示

【查看日志】既然定位到rabbitmq出现了问题,那看日志吧。通过  cat   /var/log/rabbitmq/rabbit@iZ2833hov32Z.log 即可看到相关日志情况。
*****************************************************
=INFO REPORT==== 16-Aug-2015::09:49:29 ===
Priority queues enabled, real BQ is rabbit_variable_queue


=INFO REPORT==== 16-Aug-2015::09:49:29 ===
Memory limit set to 1531MB of 3829MB total.


=INFO REPORT==== 16-Aug-2015::09:49:29 ===
Disk free limit set to 50MB


=INFO REPORT==== 16-Aug-2015::09:49:29 ===
Disk free space insufficient. Free bytes:0 Limit:50000000
*********************************************************************

看到了吧,就是Disk space的容量出现问题。在网页管理页面,也可以发现Disk space显示为0.而默认是50M,所以rabbitmq-server会受限制。


官方对这个值的配置参数disk_free_limit的解释:

disk_free_limit Disk free space limit of the partition on which RabbitMQ is storing data. When available disk space falls below this limit, flow control is triggered. The value may be set relative to the total amount of RAM (e.g. {mem_relative, 1.0}). The value may also be set to an integer number of bytes. By default free disk space must exceed 50MB. See the memory-based flow control documentation.
Default: 50000000


查看linux主机的磁盘使用情况:


[root@iZ2833hov32Z pyspider]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             20G   20G     0 100% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/xvdc1             69G   47G   19G  72% /mnt/diskc
/dev/xvdb1             30G  339M   30G   2% /mnt/diskb

看到了吧,一个磁盘满了!上网找了一下,解决思路有:
1.删除没有用的日志。以及把一些没用的大文件删除吧。

2.不能删除的就把打文件转移到diskb盘 或者diskc盘里面。


重新启动pyspider,成功了!!


【题外话】

博主我,半路出家学pyspider、mongodb数据库、rabbitmq、更是半路出家学linux。走了很多的弯路。当作为一个在代码的世界里遨游的人,不走弯路怎么能换来更强悍的成长呢?博主我,感受很深啊。看哪天有时间了,把自己学的东西贴上来一下。希望今天分享的对大家能有所帮助。有问题的欢迎大家留言探讨哈~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 如果您的 PySpider 一直卡在 "result_worker starting...",可能是因为 result_worker 进程无法正常启动。 以下是一些可能的解决方法: 1. 检查日志:可以检查 PySpider 的日志,查看是否有任何错误或警告信息。日志文件通常位于 `logs/` 目录下。 2. 检查端口:确保您使用的端口没有被占用。您可以尝试使用其他端口启动 PySpider,例如: ``` pyspider all --webui-port=8081 --scheduler-port=23333 --result-port=25555 ``` 3. 升级 PySpider:尝试升级到最新版本的 PySpider,可能会修复已知的问题。 4. 重启机器:有时候重启机器可以解决一些问题,尝试重启机器并再次启动 PySpider。 5. 检查依赖项:确保您的系统中已安装了 PySpider 所需的所有依赖项。您可以尝试重新安装依赖项或使用虚拟环境来隔离依赖项。 如果以上方法均未能解决问题,您可以尝试在 PySpider 的 GitHub 仓库上提交一个 issue,以获取更多的帮助。 ### 回答2: pyspider 是一种基于 Python 的开源网络爬虫框架,用于快速、高效地进行网络数据采集和处理。在使用 pyspider 进行爬虫任务时,可能会遇到一直卡在 "result_worker starting..." 的问题。 "result_worker starting..." 是指 pyspider 的结果处理模块在启动过程中出现了问题,导致无法正常运行。这个问题可能有多种原因,下面我将介绍几个可能的解决方法: 1. 检查配置文件:首先确保你的配置文件中没有错误,特别是数据库和消息队列的连接设置是否正确。可以参考 pyspider 的官方文档来配置正确的参数。 2. 检查网络连接:确保你的网络连接是正常的,可以尝试访问相关的数据库和消息队列服务,确保它们都可以正常访问和连接。 3. 检查依赖库:如果你的系统中安装了多个版本的 Python 或依赖库,可能会导致冲突或不兼容的问题。可以尝试重新安装或更新相关的依赖库来解决冲突问题。 4. 启用日志调试:在启动 pyspider 时,可以使用 `-q` 参数来启用详细的日志输出,这样可以更好地了解问题的具体原因。可以通过查看日志来获取更多的调试信息,以便进行问题排查。 5. 参考社区和文档:pyspider 有一个活跃的社区,你可以在社区中提问和寻求帮助。此外,可以查阅 pyspider 的官方文档和相关教程,寻找更多的解决方案和建议。 希望以上几点能够帮助你解决 pyspider 卡在 "result_worker starting..." 的问题,并能够顺利运行你的爬虫任务。如果问题仍然存在,建议你提供更多的细节信息,以便更好地帮助你解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值