python 用进程池抓取远程数据的时候程序会停止不动了

2015-10-27 09:56:34 +08:00
 dai269619118

程序是时时抓取一些帖子的浏览量 每 5 分钟抓取一次。
用的是 tornado 框架里面定时的方法
tornado.ioloop.PeriodicCallback(doStart, 60000).start()
每隔十天半个月 这个程序就会出现不会自动抓取了
进程 ps 里还是能看到这个python的进程
中间要是执行出现问题 后面的就不会再抓取数据了 好像程序一直卡住了
刚开始以为是 pycurl 没有设置超时的问题,可是我设置了 还是会有这个问题
不知道有什么原因了....大神们 帮忙看看

2287 次点击
所在节点    程序员
8 条回复
rockivy
2015-10-27 10:01:00 +08:00
路过帮顶
22too
2015-10-27 10:05:57 +08:00
弄不好就是底层的锅,不过 python 的网站,暂时没有遇到这个问题
simpx
2015-10-27 11:12:35 +08:00
pstack pid
堆栈看看能不能判断出卡在哪儿了
dai269619118
2015-10-27 12:31:59 +08:00
@simpx 学习了 谢谢
22too
2015-10-27 12:35:04 +08:00
之前有朋友做爬虫也遇到了,使用的是线程池,一天重启一次,所以你要你可能需要改变执行策略,比如定时执行之类的。而不是一直进行执行!
dai269619118
2015-10-27 12:39:07 +08:00
@22too 是的 就是用线程池 不行只能 crontab
22too
2015-10-27 14:37:07 +08:00
朋友的代码我看了,代码没问题,但是跑到一定时间,就会不动了,也不是挂了。所以最后推荐使用一天一重启, crontab 值得拥有。
dai269619118
2015-10-27 14:41:02 +08:00
@22too 只能这样了 谢谢

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

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

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

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

© 2021 V2EX