curl使用curl_easy_perform导致线程或者进程卡死解决办法
来源:互联网 发布:美丽说聊天软件 编辑:程序博客网 时间:2024/05/11 02:59
描述:curl提供的curl_easy_perform调用方式是阻塞的,如果没有收到回复,则会导致线程或者进程一直阻塞,除非外界干预。
解决办法:curl提供了CURLOPT_LOW_SPEED_LIMIT CURLOPT_LOW_SPEED_TIME option,主要思想为:如果在指定时间传输速率超过设置的最低值,
则会自动断开该链接。
举例:
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT , 50);
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME , 5);
res = curl_easy_perform(curl);
官方文档解释:
CURLOPT_LOW_SPEED_TIME - set low speed limit time period
CURLOPT_LOW_SPEED_LIMIT - set low speed limit in bytes per second
CURLOPT_LOW_SPEED_TIME Pass a long as parameter. It contains the time in number seconds that the transfer speed should be below theCURLOPT_LOW_SPEED_LIMIT for the library to consider it too slow and abort.
具体可以参考curl官方文档:
https://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html
https://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html
对于curl没有特别深入的学习,如果有更好的办法或者上面描述有误,请留言指正,谢谢。
- curl使用curl_easy_perform导致线程或者进程卡死解决办法
- Indy10线程池BUG:Idyarn线程使用Synchronize导致TerminateAllYarns挂死的解决办法
- Java进程与父子进程的标准输出流关联导致线程卡死的故障
- (三)Libcurl中使用curl_easy_perform阻塞, 遇到无信号卡死的完美解决方案
- Libcurl中使用curl_easy_perform阻塞, 遇到无信号卡死的完美解决方案
- flock导致进程卡死, 如何查看
- curl_easy_perform post 数据死循环?
- shellexecute起进程导致卡死的问题
- Linux进程多导致CPU卡死的问题
- Linux进程多导致CPU卡死的问题
- Linux 死进程导致数据慢
- eclipse上一次没有正确关闭,导致启动的时候卡死异常解决办法解决办法
- 在stm32中使用while循环导致程序卡死
- 在并发环境下使用HashMap导致的线程死循环问题
- ajax 导致浏览器卡死
- VC6link卡死解决办法
- 复制粘贴时导致eclipse(myeclipse、sts)卡死的解决办法
- SQL进程锁死的解决办法
- left join & right join & inner join
- 【MySQL性能优化】Mysql基本性能分析命令详解
- Android 开发者的 RxJava 详解
- List去重
- J2EE学习笔记(一)
- curl使用curl_easy_perform导致线程或者进程卡死解决办法
- php识别“中文文件名”文件报错问题
- Codeforces Round #380 B - Spotlights
- 哈理工软件学院"兆方美迪"杯第六届程序设计大赛【高年级组】--决赛 Problem A:凌波微步 By Assassin
- GNU/GCC/G++ 编译/链接生成的常见段(section)表
- 抽取feature\weight
- Codeforces Round #380A - Interview with Oleg
- Two-Stream Convolutional Networks for Action Recognition in Videos
- 网络 特殊符号大全