次のような特定のタイミングでクライアントにレポートを自動送信する必要があります
- 毎日00:01AM
- 毎週日曜日00:01AM
- 毎月1日目
- 毎年1日目
毎日私はこれをやっています:
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にタスクが実行され、翌日に実行する必要があるコンテキストが読み込まれるとすぐに実行されます...
彼らは私のコードに何か問題がありますか?