问题
SpringBoot中@Schedule定时调度突然失效。
排查原因是在@Schedule注解的方法的类中加了@RefreshScope注解,更改nacos配置中心的配置时,触发@RefreshScope逻辑的执行,导致定时调度任务的缓存失效。
解决方法
具体见:https://www.jianshu.com/p/0e490fe4ff7a
Schedule类实现ApplicationListener<RefreshScopeRefreshedEvent>接口,在onApplicationEvent(event)方法中,手动调用被@Scheduled标注的方法。
当触发RefreshScopeRefreshedEvent事件时,就会重新把调度任务放到缓存中。