0

アプリケーションで複数のスレッド カール リクエストを使用しようとしています。問題は、curl_multi リクエスト中にアプリケーションが応答しなくなることです (別のリクエストが待機中です)。また、curl_multi 中は誰もサイトを使用できません。カールが終了すると、サーバーは正常に応答します。

4

1 に答える 1

4

これは curl_multi とは関係ありませんが、PHP セッションとは関係ありません。

次の 2 つの要求を行います。

  1. 長く続くcurlリクエストを行うもの
  2. そして二度目のお願い。

最初のリクエストは、php セッションを開いてロックします。次に、curl リクエストを実行しますが、これには時間がかかります。

2 番目のリクエストは、php セッションが解放されるのを待ちます。つまり、最初のリクエストが終了するまで待ちます。

他のリクエストも、php セッションが解放されるのを待ちます。これが、アプリケーションが応答していないように見える理由です。

解決策は次のとおりです。

  • 実行時間の長いスクリプトを避ける
  • または、session_write_close() を呼び出して、実行時間の長いスクリプトの前にセッションを閉じます。

PHP ダウンロードが残りのリクエストをブロックするのを参照してください

于 2013-05-24T12:07:13.850 に答える