关于 Python 多线程爬虫,线程假死的问题

2018-11-20 16:59:12 +08:00
 yixiugegegege

这几天在搞 boss 直聘,全国数据.

写了个多线程爬虫, 晚上挂到服务器上爬虫速度杠杠滴, 第二天来看爬虫速度巨慢无比,

我是开的 300 线程,

查看服务器状态, cpu 内存, 带宽 非常正常,

然后网上查查资料 可能是 TCP 的端口占用 TIME_WAIT 太多, 导致服务器可用端口耗尽,

但是我测试了一下 10 个线程, 发现还是会变慢,

然后考虑到可能是线程假死了,,

代码大概: requests 请求全部加了 timeout ;

需要对数据库操作的方法都写了对 mysql 的连接; 更新,查找操作都加了线程锁;

while true 循环 break 加好了都

那么问题来了,大佬们,我怎么判断出是哪个步骤假死了,

如果判断不出来, 有没有操作 可以重启这个线程..

或者大佬们有没有遇到过这种情况,求指点

2545 次点击
所在节点    Python
2 条回复
wlsnx
2018-11-20 17:27:05 +08:00
代码呢?
yixiugegegege
2018-11-20 18:08:03 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/509694

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX