我正在使用Tomcat7.0开发一个Java应用程序(JSF2.0)。我需要每天定时发一封电子邮件。我打算使用JavaMail发送电子邮件,但如何让它在每天的特定时间发送电子邮件。就中午吧。?
任何和所有的帮助都非常感谢!
发布于 2012-01-16 20:59:47
由于Tomcat是一个简单的simple容器,它不提供内置的调度工具,也不支持非常方便的EJB注释,因此您需要自己管理调度,或者使用第三方类库,例如Quartz,或者只是将作业委托给底层操作系统平台的调度工具,如基于Windows的平台中的Task Scheduler和基于Unix的平台中的Cron。
使用标准API时,您可以使用ServletContextListener在启动时初始化调度器,并且可以使用ScheduledExecutorService作为调度器。
下面是一个启动示例:
@WebListener
public class Config implements ServletContextListener {
private ScheduledExecutorService scheduler;
@Override
public void contextInitialized(ServletContextEvent event) {
long secondsUntilNoon = calculateItSomehow();
long secondsPerDay = 60 * 60 * 24;
scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new Mailer(), secondsUntilNoon, secondsPerDay, TimeUnit.SECONDS);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
scheduler.shutdownNow();
}
}其中Mailer类看起来就像这样:
public class Mailer implements Runnable {
@Override
public void run() {
// Do your mailing job here.
}
}另请参阅:
发布于 2012-01-16 16:50:21
发布于 2012-01-16 16:59:10
https://stackoverflow.com/questions/8877458
复制相似问题