我在使用以下代码时遇到问题。
//Send Creation email
ListServDAO.sendCreateEmail(orgId, full, request.getSession().getServletContext());
//Force a 1 minute pause
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//Send add members email
ListServDAO.sendAddMembersEmail(orgId, request.getSession().getServletContext());
}
}, 0, 60 * 1000);
sendAddMembersEmail 函数在调用 sendCreateEmail 函数后不会等待 1 分钟即可发送。我不知道为什么即使在阅读了 java API 后它也不等待。我不想使用 Thread.sleep 方法,因为我希望用户能够在等待电子邮件发送时使用该应用程序。
最佳答案
您打算重复发送电子邮件吗?如果不是,为什么要使用需要 2 个 long 的方法(即“每 <period>
毫秒重复运行此任务”)?使用schedule(task, delay)
方法(并使用非零延迟)。
关于Java 时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707361/