一开多线程用 pycurl 就挂?

2015-10-27 15:41:31 +08:00
 tdifg

最近赶个工,需要取延时信息,所以必须用 curl 。

核心部分很简单,就是多线程(我用了 threadpool)用 curl 跑 url 列表,结果我这里经常直接 exit code 139 ,看下 core dump ,貌似是 perform 过程中挂的。磨蹭了一上午,一气之下直接换用了 for 循环……竟然就正常了
你们碰过这种事吗?

3514 次点击
所在节点    Python
6 条回复
loqixh
2015-10-27 15:55:17 +08:00
libcurl 的多线程有点麻烦,很多库没处理。。。。。。。退出正常
dai269619118
2015-10-27 16:31:30 +08:00
我用进程池跑 pycurl 也有这个问题- -
tdifg
2015-10-28 17:09:46 +08:00
@dai269619118
@loqixh 我从某个犄角旮旯里翻了个设置:
c.setopt(pycurl.NOSIGNAL, True)
加上这个就没问题了,没有测试其他库,至少用 threadpool 是正常了。
不清楚为啥,以后有空该读读 threadpool 代码。
dai269619118
2015-10-28 21:12:10 +08:00
@tdifg 擦 我加上试试
tdifg
2015-12-14 12:25:38 +08:00
@dai269619118
@loqixh
然而,一个月过去了,程序前几天突然挂了,看了下进程状态,应该是多线程出了问题。所以,最好不要多线程调 pycurl 。
唉……
dai269619118
2015-12-14 12:39:48 +08:00
@tdifg 现在用 supervisor 管理起来 还没出现过问题

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

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

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

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

© 2021 V2EX