Guava の SimpleTimeLimiter を使用してタイムアウト機能を取得しています。問題は、SimpleTimeLimiter を使用するとすぐにアプリのシャットダウン (終了した場合) に 30 秒かかることです (タイムアウトを変更してもこの時間は変わりません)。直接呼び出すとnew MyCallable().call()
、すべて正常に動作します-最後のタスクが完了するとすぐにアプリがシャットダウンされます。
アプリ自体には、ctrl-c (最後のタスクを完了するため) を処理できる独自のシャットダウン フックがあります。アプリは、H2 に埋め込まれたデータベースとネットワークを使用します。
visualvm でプロファイリングしてみました - 最後に時間が記録されていませんか?! この長い待機期間は、シャットダウン フックが呼び出される前に発生しました (おそらく別のシャットダウン フック?)。
これを修正する方法はありますか?