[英]http post in loop is running timing out
我正在嘗試將 curl 請求從源循環發送到目標。 循環運行 2 次。 第一個請求持續 32 秒,第二個請求持續 50 秒。 終於超時了。 控制超時不在我的控制范圍內,因為它是共享主機。
下面的源代碼部分正在瀏覽器中運行。 用完 120 秒后顯示以下錯誤消息
錯誤詳細信息:致命錯誤:超過 120 秒的最大執行時間
問題我假設請求不應超時,因為這兩個請求都是通過它們自己的 curl 請求分別提交的。 盡管如此,它似乎正在合並以形成總共一個請求。
如果我運行循環一次,那么一切正常,因為它需要 30 秒。
我錯過了什么嗎?
資源
for($i = 0; $i <= 200; $i+= 100) {
$postData = array(
'start' => $i,
'end' => $i + 100
);
$ch = curl_init('Server url');
curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
CURLOPT_POSTFIELDS => json_encode($postData)
));
$response = curl_exec($ch);
$responseData = json_decode($response, TRUE);
curl_close($ch);
echo $response;
}
目的地
public function methodname()
{
$json = json_decode(file_get_contents('php://input'), true);
// .
// .
// Logic that runs for 32 seconds
// .
// .
header('Content-type: application/json');
echo json_encode("message");
}
嘗試使用 cURl 的 CURLOPT_TIMEOUT 或類似配置。 更多信息https://www.php.net/manual/en/function.curl-setopt.php在這里
答:閱讀文檔
嘗試在循環中添加sleep(1)
function 。 可能是您被請求的服務器在短時間內不喜歡多個 POST 請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.