ある時点で外部 URL からいくつかのコンテンツをカールするアプリを構築しています。これまでのところ、これは常に非常に迅速/瞬時に終了しました。ただし、外部サーバーの応答に時間がかかるとどうなるかはわかりません。cURL が終了するまで、PHP は次のコードの実行を待機しますか?
遅い応答を「シミュレート」する方法がわからないため、実際にテストすることはできません。この擬似コードが私の質問を明確にすることを願っています:
$ch = curl_init( $some_remote_url );
$fp = fopen( $some_local_file, 'wb' );
curl_setopt( $ch, CURLOPT_FILE, $fp );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_exec( $ch ); // Let's say this takes 20 seconds until the other server responds
curl_close( $ch );
fclose( $fp );
redirect( $some_other_url ); // Will this be executed instantly or only after 20 seconds?
これについて疑問に思っている理由は、リモート サーバーの応答が遅い場合に備えて、ユーザーに「読み込み中」ページを 20 秒間見させたくないため、おそらくプロセス全体を cron ジョブに移動する必要があるからです。 . ユーザーはすぐにカーリングの結果を必要としないので、プロセスがいつ終了するかは問題ではありません。