最近赶个工,需要取延时信息,所以必须用 curl 。
核心部分很简单,就是多线程(我用了 threadpool)用 curl 跑 url 列表,结果我这里经常直接 exit code 139 ,看下 core dump ,貌似是 perform 过程中挂的。磨蹭了一上午,一气之下直接换用了 for 循环……竟然就正常了
你们碰过这种事吗?
1
loqixh 2015-10-27 15:55:17 +08:00
libcurl 的多线程有点麻烦,很多库没处理。。。。。。。退出正常
|
2
dai269619118 2015-10-27 16:31:30 +08:00
我用进程池跑 pycurl 也有这个问题- -
|
3
tdifg OP @dai269619118
@loqixh 我从某个犄角旮旯里翻了个设置: c.setopt(pycurl.NOSIGNAL, True) 加上这个就没问题了,没有测试其他库,至少用 threadpool 是正常了。 不清楚为啥,以后有空该读读 threadpool 代码。 |
4
dai269619118 2015-10-28 21:12:10 +08:00
@tdifg 擦 我加上试试
|
5
tdifg OP |
6
dai269619118 2015-12-14 12:39:48 +08:00
@tdifg 现在用 supervisor 管理起来 还没出现过问题
|