我只是想弄清楚如何在初始延迟的Quartz中配置Cron作业。 所以我需要每小时运行一次,最初延迟10分钟。
"* * 0/1 * * ?"
答案 0 :(得分:0)
这是一个迟到的答案,希望这有助于其他人。我通过在我的服务类中使用了2个预定函数来解决了这个问题:
@EnableScheduling
public class DeviceService {
@Scheduled(initialDelayString = "${devices.update.initial}", fixedDelay = 2592000000L)
public void initialUpdateDevices() {
updateDevices();
}
@Scheduled(cron = "${devices.update.cron}")
public void cronUpdateDevices() {
updateDevices();
}
private void updateDevices() {
...
}
}
初始延迟和cron表达式在application.properties中设置。 fixedDelay是因为Spring不允许单独使用initialDelay。我把它设置为2592000000毫秒,这是30天。在我们的应用程序中,潜在的额外更新不会造成任何伤害。
在application.properties中:
devices.update.initial = 600000
devices.update.cron = 0 30 1 * * *
最初在10分钟(60000毫秒)后运行,然后每晚在01:30运行。
在单元测试的application-test.properties中:
devices.update.initial = 86400000
devices.update.cron = 0 30 1 24 12 *
我们的单元测试都没有需要1天才能执行,所以86400000毫秒是一个安全的赌注。 cron" 0 30 1 24 12 *"在圣诞节前夕,人们应该梦想着美好的事物。