Nacos动态更改配置后导致定时任务不执行

说明: nacos服务版本:1.4.1 问题: 在定时器类中使用nacos注解动态刷新,变更配置中心的配置后,项目监听到了变更,但是会使定时器无法执行的问题。 解决方案: nacos动态配置的数据统一放到一个类中,在更新nacos配置后,配置类会出现懒加载,即访问时才加载,如果将变更的变量放到定时器类中,那么定时器就会懒加载,导致定时器无法执行! import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; /** * nacos统一动态配置类 * @author tyg * @date 2021-04-15 15:57 */ @RefreshScope @Configuration public class DynamicConfig { @Value("${demo.number:10}") public Integer number; public Integer getNumber(){ return this.number; } } 3. 定时器中调用示例: import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; /** * 定时器demo * @author tyg * @date 2021-04-15 9:50 */ @Component public class DemoTask { @Resource private DynamicConfig dynamicConfig; @Scheduled(fixedDelay = 5000) public void run(){ System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date()) + " demo.number=" + dynamicConfig.getNumber()); } } ———————————————— 版权声明:本文为CSDN博主「朝如青丝·暮成雪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_26365837/article/details/115767907 ...

2024-11-29 · 1 min · airocld