我有一个方法,计划每隔20分钟运行一次。我只是在Spring boot中使用了@Scheduled注解,但是我需要一个在运行时延迟时间的调度器。例如,如果我想要在运行时更改方法执行的延迟时间/频率而不停止应用程序,即更改DB和代码中的频率,那么代码应该适应它。
@Scheduled(initialDelay=15*60*1000, fixedRate=20*60*1000)
public void MyMethod() {
// Code to repeat after every 20 minutes
}
}代码中的固定速率应该是可变的,并在运行时获取。有可能实现吗?
发布于 2016-11-28 22:33:14
你可以在更改属性文件中的固定速率后刷新spring上下文,或者使用spring cloud配置,但这会引发一些问题- refresh()应该销毁当前生活在上下文中的所有bean(单例等)并重新创建它们,因此任何可能发生的引导都会再次发生。
https://stackoverflow.com/questions/40845046
复制相似问题