問題
SpringBoot中@Schedule定時調度突然失效。
排查原因是在@Schedule注解的方法的類中加了@RefreshScope注解,更改nacos配置中心的配置時,觸發@RefreshScope邏輯的執行,導致定時調度任務的緩存失效。
解決方法
具體見:https://www.jianshu.com/p/0e490fe4ff7a
Schedule類實現ApplicationListener<RefreshScopeRefreshedEvent>接口,在onApplicationEvent(event)方法中,手動調用被@Scheduled標注的方法。
當觸發RefreshScopeRefreshedEvent事件時,就會重新把調度任務放到緩存中。