这几天在搞 boss 直聘,全国数据.
写了个多线程爬虫, 晚上挂到服务器上爬虫速度杠杠滴, 第二天来看爬虫速度巨慢无比,
我是开的 300 线程,
查看服务器状态, cpu 内存, 带宽 非常正常,
然后网上查查资料 可能是 TCP 的端口占用 TIME_WAIT 太多, 导致服务器可用端口耗尽,
但是我测试了一下 10 个线程, 发现还是会变慢,
然后考虑到可能是线程假死了,,
代码大概: requests 请求全部加了 timeout ;
需要对数据库操作的方法都写了对 mysql 的连接; 更新,查找操作都加了线程锁;
while true 循环 break 加好了都
那么问题来了,大佬们,我怎么判断出是哪个步骤假死了,
如果判断不出来, 有没有操作 可以重启这个线程..
或者大佬们有没有遇到过这种情况,求指点
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.