私のアプリケーションでは、クライアントは完了までに 1 ~ 2 分かかる複雑なタスクを要求できます。タスクは別のスレッドで実行され、リクエスト ハンドラは BlockingQueue を介してタスクと通信します。
現在、サーバーは、10 秒ごとにサーバーをポーリングする待機中のページにクライアントを即座にリダイレクトします。ただし、これは非常に非効率的であり、ポーリングの直後にタスクが終了した場合、クライアントはさらに 10 秒待たなければならない場合があります。
私がやりたいことは、タスクが完了するまで (待機中のページの) 要求ハンドラーをブロックしてから、ユーザーに応答を書き込むことです。私の観察によると、ほとんどのブラウザーは、サーバーが TCP ソケットを受け入れた場合 (そしておそらくヘッダーを書き戻した場合は??)、より長いタイムアウトを使用しますが、ブラウザーごとの正確なタイムアウトについてはわかりません。
ブラウザを2分間待たせるのは現実的ですか? 誰かがこれまたはより良いアイデアについて何か経験がありますか?