如何设置PHP5的curl调用超时?已发布的 CURL 选项似乎不起作用
我们编写了一个从外部服务器提取数据的脚本。如果服务器出现故障,我们不希望服务器等待数据,因为我们处理大量数据,并且不希望服务器陷入困境。为了解决这个问题,如果卷曲调用花费的时间超过几百毫秒,我们会尝试使它们超时。
我发现一些文档说 CURLOPT_TIMEOUT_MS 和 CURLOPT_CONNECTTIMEOUT_MS 在我的 php 和 libcurl 版本中应该可用,但即使我将超时设置为 1ms,它似乎也没有超时。
$url = "http://www.cnn.com;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,0); //Change this to a 1 to return headers
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 1);
$data = curl_exec($ch);
curl_close($ch);
有谁知道我们做错了什么或有其他方法可以做到这一点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在无响应的dns服务器和curl多重超时不起作用中看到了这个:
saw this in unresponsive dns server and curl multi timeouts not working: