Java任务计划程序每天从开始日期到结束日期运行

时间:2015-06-01 05:46:38

标签: spring-boot scheduled-tasks

我在java中有一个spring boot应用程序,我需要在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函数吗?

1 个答案:

答案 0 :(得分:4)

如果你在,你可以简单地重复这些注释 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() {...}