繁体   English   中英

PHP 处理无响应卷曲

[英]Php handling of unresponsive curl

我有一个 php 脚本,它使用 curl 从外部站点获取数据,然后在三分钟后重新加载自身,获取新数据并显示更新。 它工作正常,但如果出现网络故障,我认为是 curl 没有得到响应,php 只是挂起而不返回错误或任何东西。 然后需要手动终止这些挂起的进程。

我该如何处理这种情况? 调整卷曲选项? 修改它监视无响应卷曲的 php 脚本? 或者处理从浏览器到 ajax 的所有内容,包括触发杀死挂起的 php 进程的脚本?


解决方案:我已经添加

curl_setopt($ch, CURLOPT_FAILONERROR = true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

到我的 curl 并将这些错误的捕获添加到我的响应检查部分。 从概念上讲,这就是所需要的,CURLOPT_CONNECTTIMEOUT 似乎没有必要,因为我已经设置了重新加载以防出错。

它适用于手动断开连接,但我还没有看到脚本如何处理现实生活中的网络故障。 应该没问题。

要处理网络问题,请使用CURLOPT_CONNECTTIMEOUT选项来定义一些秒。 它将等待给定的秒数以连接到目标主机。

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

并使用CURLOPT_TIMEOUT选项来定义允许卷曲进行特定操作的秒数。 如果目标服务器不释放连接,这将很有帮助。

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM