我需要在特定时间自动向我的客户发送报告,例如
- 每天上午 00:01
- 每周日 00:01 AM
- 每个月的第一天
- 每年的第一天
我每天都在这样做:
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("context initiallized");
System.out.println("Starting timer");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 1);
calendar.set(Calendar.SECOND, 0);
Date alarmTime = calendar.getTime();
_timer = new Timer();
_timer.schedule(new AlarmTask(), alarmTime);
}
这是我执行日常任务的课程:
public class AlarmTask extends TimerTask {
public void run() {
// Do your work here; it's 00:01 AM!
}
}
它似乎工作正常 但是 当我在凌晨 00:01 之后的任何时间启动 tomcat 说在凌晨 02:30 时,任务在加载上下文后立即执行,我需要在第二天执行它......
他们对我的代码有任何问题吗?