我有一个Spring Boot应用程序,其中有一个带有以下两个方法的类。
@Component
public class ClassA {
@Scheduled(fixedDelay = 900000)
public void methodA(){
//do task "A"
}
@Scheduled(fixedDelay = 600000)
public void methodB(){
//do task "B"
}
}
根据我的理解,methodA应该每15分钟执行一次,methodB应该每10分钟执行一次。但是,一旦应用程序启动,就会同时调用两个作业。这是正确的行为吗?如果是,那么如何在应用程序启动后立即阻止它们执行,并在methodA之后运行methodB?
最佳答案
作为文档的形式:Scheduled (Spring Framework 5.0.4.RELEASE API)
fixedDelay:以固定的周期执行带注释的方法
上一次调用结束与开始之间的毫秒数
下一个。
你想要的是
initialDelay:
第一次延迟之前要延迟的毫秒数
执行fixedRate()或fixedDelay()任务。