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