当前位置: 首页 > 后端技术 > Java

Apollo实现cron语句热配置

时间:2023-04-01 14:48:56 Java

原文链接GitHub项目地址Gitee项目地址Apollo(Apollo)是携程框架部开发的分布式配置中心,可以集中管理不同环境、不同集群的配置。配置修改后可以实时推送到应用端,具有标准化权限和流程治理的特点,适用于微服务配置管理场景。Apollo与properties配置文件的功能一样,都可以设置参数。Apollo的优点是可以在不重启项目的情况下实时修改参数的值。1配置Apollo本地配置Apollo参考:Apollo本地快速部署2添加Apollo参数在Apollo中添加参数:param.cron_test1=0/5****?param.cron_test2=0/5****?实现Apollo需要使用ScheduledTaskRegistrar进行定时任务cron语句的热配置。具体方法如下:@OverridepublicvoidconfigureTasks(ScheduledTaskRegistrartaskRegistrar){Runnablerunnable=()->{System.out.println("cron_test:"+cron_test);};触发器trigger=triggerContext->{CronTriggercronTrigger=newCronTrigger(cron_test);返回cronTrigger.nextExecutionTime(triggerContext);};taskRegistrar.addTriggerTask(runnable,trigger);}@OverridepublicintgetOrder(){return0;}完整项目地址:GitHub地址:https://github.com/Snowstorm0/learn-apollo-cronGitee地址:https://gitee.com/Snowstorm0/learn-apollo-cron在运行项目前,需要修改resource/application.properties中apollo.meta的值,将localhost替换为apollo的地址,端口为Eureka的端口号(8080默认情况下)。运行项目,可以看到输出:cron_test1:0/5****?current_time1:10:53:13cron_test2:0/5****?current_time2:10:53:13将Apollo中的cron语句改为0/10****?,不重启,可以看到项目的输出变成:cron_test1:0/10****?current_time2:10:54:05cron_test2:0/10****?current_time1:10:54:05想了解更多编程知识,请关注我的公众号:代码之道