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