为了账号安全,请及时绑定邮箱和手机立即绑定

当目标 URL 无响应时如何删除 PHP cURL 请求?

当目标 URL 无响应时如何删除 PHP cURL 请求?

PHP
哔哔one 2022-07-29 12:33:19
我有一个共享主机的网站,Entry Processes限制为 30。我在 PHP cron 作业上使用 cURL 函数定期从另一个 URL 获取数据。相关代码如下。    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);大多数时候,我的网站运行得很好,只使用了大约 4-5 个进入过程。每当此目标$url由于某种原因没有响应时(并且经常发生)。我很快进入了进入流程限制,所有进一步的请求都被拒绝了。CURLOPT_CONNECTTIMEOUT似乎没有按预期工作。我怎样才能避免这种情况?我检查了其他 cURL 选项,但似乎都没有工作。
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

10 秒的超时时间非常长。根据您服务的请求数量以及您的所有请求是否触发此调用,您所有可用的进程可能只是在等待来自该服务器的响应。

你可以考虑降低这个数字。

curl 也有第二次超时CURLOPT_TIMEOUT。尝试另外设置它。如果与服务器的连接在 10 秒内完成,然后服务器需要 60 秒来处理您的请求,则当前超时对您没有帮助,因为它只会限制连接时间。

如果您不想依赖 cURL 正在做什么,您还可以使用set_time_limit()为 php 进程本身设置时间限制。如果您将其设置为例如 30 秒,那么无论 cURL 是否完成,php 都会在该时间之后停止执行。这应该在 curl 调用之前完成。


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信