在Spring Boot中基于​​另一个@schedule方法的完成来触发@schedule

时间:2019-10-04 08:50:24

标签: spring spring-boot methods synchronization

在Spring Boot应用程序中,我有两种用@scheduled注释的方法。我希望其中一种方法在第一个@scheduled方法完成执行后等待10分钟。

当前,我为第一份工作设置15分钟,为第二份工作设置30分钟。有时,第一个作业执行时间过长,同步中断。

想要根据另一个@scheduled方法执行来计时第二个@scheduled方法。

1 个答案:

答案 0 :(得分:0)

如果您的第二个方法依赖于第一个方法,则它可能应该只是第一个方法的一部分,而没有自己的@Scheduled注释。

但是是的,您的想法可行,您需要一个静态的long(称为dateFlag),并在第一个方法完成后将其设置为new Date()。getTime()。然后第二个方法的开头会有一个if语句,例如 如果(new Date()。getTime-dateFlag> 600000){...}

600000(以毫秒为单位)为10分钟,如果您需要其他时间,那么此工具非常方便https://www.timecalculator.net/minutes-to-milliseconds