FastCGI / SCGI (独立実装) サーバーを作成しようとしていますが、ネットワーク化された、特に遅延アプリケーション プログラミングの経験があまりありません。
やりたいことを詳しく考えると理論的な問題が出てきました。Web サーバーが TCP 要求をサーバーに送信すると、入力 (バイト) が現在のハンドラー (FastCGI / SCGI ハンドラー) に処理されます。問題は、応答の作成に時間がかかる場合はどうなるかということです。クライアントが約 10MB の大きなファイルを要求したとします。10MB がクライアントにフラッシュされるまでサーバーが待機する必要があるというのは正しいですか? 結論は次のとおりです。クライアントのインターネット接続が低い場合、サーバーは 10MB が完全にフラッシュされるまでブロックされますね。
たとえば、SQL ステートメントを実行する必要があるプロセス要求についてはどうでしょうか。時間がかかります。今回はサーバーがブロックされますよね?私を修正してください。
この問題を解決するために、私の唯一のアイデアはスレッドを使用することです - そして、私はそれらの経験があまりありません。SCGIプロトコルを正しく理解していれば、スレッドは解決策ではなく、リクエストに対する即時の応答が期待されます。request-ids をサポートする FastCGI の代わりに。あなたの解決策は何ですか?