1

わかりました、これは本当に奇妙です。ローカルホストにリクエストを送信すると (約 1 ~ 2 ミリ秒かかります)、curl にさらに時間がかかります。タイムアウト(ConnectionTimeout/normaltimeoutの最低値)に依存しているようです。

すべてのリクエストが成功する

  • Timeout_Ms = 5 の場合、curl が復帰するまでの時間は約 1 Ms です。
  • Timeout_Ms = 50 の場合、curl が復帰するまでの時間は約 4 Ms です。
  • Timeout_Ms = 500 の場合、curl が復帰するまでの時間は約 250 Ms です。
  • Timeout_Ms = 1000 の場合、curl が復帰するまでの時間は約 500 Ms です。
  • Timeout_Ms = 1500 の場合、curl が復帰するまでの時間は約 750 Ms です。
  • Timeout_Ms > 2000 の場合、curl が復帰するまでの時間は約 1000 Ms です。

そのため、タイムアウトを高く設定すると、リクエストに常に 1 秒かかります。curl_multi を使用すると、時間も 1 秒追加されますが、リクエストの数は関係ありません。

2 つのリクエストがあります。

  • 5秒かかります -> 6秒後に終了
  • 2 番目は 10 秒かかります -> 11 秒後に終了します
4

1 に答える 1

0

これはおそらく、サーバーがさらなる要求のために接続を開いたままにしたいためです。Connection-header を に設定しcloseます。たとえば、http://php.net/curl.constants.php#76914を参照してください。

$header = array("Connection: close");
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
于 2012-01-03T19:28:33.330 に答える