在我的 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 完成,然后再继续。我对这样的想法持开放态度,即这也不是在另一个线程中运行一些代码同时继续执行脚本的其余部分的最佳方式。有没有更好的方法/我如何使这个工作?