Java 任务计划程序 运行 从开始到结束日期每天
Java task scheduler run daily from start to end date
我在 java 中有一个 spring 启动应用程序,其中包含一些我需要在每天午夜 运行 从 6 月 15 日到 8 月 15 日执行的计划任务
@Scheduled(cron = "0 0 0 15-30 5 ?") // Midnight every day from 15th June until end of month
public void sendReminderEmailsJune() {
doStuff();
}
@Scheduled(cron = "0 0 0 * 6 ?") // Every day in July
public void sendReminderEmailsJuly() {
doStuff();
}
@Scheduled(cron = "0 0 0 1-15 7 ?") // The first day in August to 15th August
public void sendRemindersEmailsAugust() {
doStuff();
}
有没有更好的方法来做到这一点,这样我就不需要 3 个单独的 @Scheduled 函数?
你可以简单地重复这些注释,如果你在
Spring 4 / JDK 8
@Scheduled(cron = "0 0 12 * * ?")
@Scheduled(cron = "0 0 18 * * ?")
public void sendReminderEmails() {...}
否则,JDK 6+
@Schedules({
@Scheduled(cron = "0 0 12 * * ?"),
@Scheduled(cron = "0 0 18 * * ?")})
public void sendReminderEmails() {...}
我在 java 中有一个 spring 启动应用程序,其中包含一些我需要在每天午夜 运行 从 6 月 15 日到 8 月 15 日执行的计划任务
@Scheduled(cron = "0 0 0 15-30 5 ?") // Midnight every day from 15th June until end of month
public void sendReminderEmailsJune() {
doStuff();
}
@Scheduled(cron = "0 0 0 * 6 ?") // Every day in July
public void sendReminderEmailsJuly() {
doStuff();
}
@Scheduled(cron = "0 0 0 1-15 7 ?") // The first day in August to 15th August
public void sendRemindersEmailsAugust() {
doStuff();
}
有没有更好的方法来做到这一点,这样我就不需要 3 个单独的 @Scheduled 函数?
你可以简单地重复这些注释,如果你在 Spring 4 / JDK 8
@Scheduled(cron = "0 0 12 * * ?")
@Scheduled(cron = "0 0 18 * * ?")
public void sendReminderEmails() {...}
否则,JDK 6+
@Schedules({
@Scheduled(cron = "0 0 12 * * ?"),
@Scheduled(cron = "0 0 18 * * ?")})
public void sendReminderEmails() {...}