私の Java Web アプリには、約 200 通のメールを送信するメソッドがあります。メール サーバーの遅延のため、プロセス全体に約 7 分かかります。この一括メール送信は、ユーザー アクションの結果として発生する必要があります。もちろん、ユーザーが次に転送されるまでそれほど長く待つ必要はありません。とにかくApacheがタイムアウトすることは言うまでもありません。そのため、FutureTaskを実装して、処理中にプロセスを別のスレッドで実行しようとしています残りのコードは次のようになります。
Some code;
Runnable r = (Runnable)new sendEmails(ids);
FutureTask task = new FutureTask(r, null);
Thread t = new Thread(task);
t.start();
Some more code;
ただし、アプリは FutureTask が完了するのを待ってから続行します。これは、スクリプトの残りの部分を続行しながら、サイドで別のスレッドでコードを実行する最良の方法ではないという考えにオープンです。より良い方法はありますか/これを機能させるにはどうすればよいですか?