私のアプリケーション環境は Tomcat 7.0、JDK 1.7 です。REST API に Jersey を使用しています。投稿タイプの REST API リクエストの 1 つは、処理に 3 分以上かかりますが、これはおおよその時間であり、3 分以上になることもあります。次に、リクエストの処理が完了したら、クライアントにレスポンスを返します。しかし、ここではリクエストの処理に3分かかるため、クライアント側でリクエストのタイムアウトが発生し、サーバーからの応答が得られません。
サーバーでのリクエスト処理は次のようになります。
リクエストを開始する
- 詳細を db テーブルに挿入します [このプロセスには数秒かかります]
- ファイルをリモート コンピューター サーバーにコピーしています [このプロセスには 3 分かかります]
- ファイルを更新/アクティブ化します [このプロセスには数秒かかります]
- クライアントに応答を送信する
リクエスト処理を終了する
上記のプロセスはすべてトランザクション内にある必要があるため、上記のプロセスのいずれかを削除することはできません。
プロセスのステップ 2 で最高のパフォーマンスを既に改善しており、1 GB を超えるサイズのファイルをリクエストした場合にのみ発生します。
現在、一時的な解決策として、Apache サーバーで構成されているタイムアウト値を増やしました。
今、私は次のアプローチのいずれかで、私の問題の解決策を探しています:
- 私の問題を解決できる開発または実装戦略を提案してください。
- リクエストのタイムアウトの問題に取り組むにはどうすればよいですか?
- 応答が完了したときに、サーバー側からクライアントに通知するソリューションをお探しですか?
- Jersey REST API実装でクライアントとサーバー間の接続を閉じることができないソリューションをお探しですか?
よろしくお願いします ヤティン・バライヤ