PHPのcurlでブロッキングを防ぐ方法は?
PHP内では、cURLリクエストのブロックを防ぐために、CURLOPT_TIMEOUTとCURLOPT_CONNECTTIMEOUTオプションを設定することができます。
CURLOPT_TIMEOUTオプションは、リクエストの最大実行時間を設定するために使用されます。単位は秒です。指定した時間内にリクエストが完了しない場合、リクエストは中断されます。例えば、10秒に設定する場合は:
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
CURLOPT_CONNECTTIMEOUTオプションは、リクエストの接続タイムアウト時間を設定するために使用され、つまり、接続を確立しようとする最大時間が秒単位で指定されます。指定された時間内に接続が確立できない場合、リクエストは中断されます。例えば、5秒に設定する:
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
実際のニーズに応じて、これらの2つのオプションを適切な値に設定して、リクエストが長すぎる時間をブロックすることがないようにします。