私は、Jersey HTTP サーバーと、REST 要求用の Jersey クライアントを使用しています。
クライアントはサーバーにファイルを送信し、サーバーはファイルを処理してクライアントに応答を返します。私の問題は、サーバーでの処理に数分、場合によっては 1/2 時間かかることです。
リクエストが失敗したか、レスポンスで成功したかをクライアントに知らせたい。ただし、クライアントの readTimeout を 60 秒に設定したのは、それを 0 に設定するのは悪い習慣だと読んだためです。その結果SocketTimeoutException
、クライアントで が発生することがあります。
readTimeout を無効にする (0 に設定する) ことは安全ですか? connectTimeout は 10 秒のままです。
あるいは、TCP キープアライブを使用できますか? 私が理解しているように、これはこれらのパケットを数十分の大きな間隔でのみ送信します(OSによって異なります)。
処理が成功した場合、トークンを使用してすぐに戻り、トークンを使用してサーバーをポーリングする代わりに、他にできることはありますか? ハートビート パケットについてどこかで読んだことがあります。これは使えますか?