GitHub 我的项目地址
Gitee 我的项目地址
Apollo(阿波罗)是携程框架部门研发的分布式配置核心,可能集中化治理利用不同环境、不同集群的配置,配置批改后可能实时推送到利用端,并且具备标准的权限、流程治理等个性,实用于微服务配置管理场景。
Apollo 与 properties 配置文件的性能雷同,都能够设置参数。Apollo 的长处在于,能够实时批改参数的值,而不须要重启我的项目。
1 配置 Apollo
本地配置 Apollo 的形式参考:
2 增加 Apollo 参数
在 Apollo 中增加参数:
param.cron_test1=0/5 * * * * ?
param.cron_test2=0/5 * * * * ?
要实现 Apollo 对定时工作 cron 语句的热配置,须要应用 ScheduledTaskRegistrar
。
具体形式如下:
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {Runnable runnable = () -> {System.out.println("cron_test:" + cron_test);
};
Trigger trigger = triggerContext -> {CronTrigger cronTrigger = new CronTrigger(cron_test);
return cronTrigger.nextExecutionTime(triggerContext);
};
taskRegistrar.addTriggerTask(runnable , trigger);
}
@Override
public int getOrder() {return 0;}
残缺我的项目地址:
GitHub 地址:https://github.com/Snowstorm0…
Gitee 地址:https://gitee.com/Snowstorm0/…
在运行我的项目之前须要批改 resource/application.properties 中 apollo.meta 的值,将 localhost 替换为 apollo 的地址,端口号为 Eureka 的端口号(默认为 8080)。
运行该我的项目,能够看到输入:
cron_test1:0/5 * * * * ?
current_time1:10:53:13
cron_test2:0/5 * * * * ?
current_time2:10:53:13
在 Apollo 中将 cron 语句改为 0/10 * * * * ?
,不须要重启,即可看到我的项目的输入变为:
cron_test1:0/10 * * * * ?
current_time2:10:54:05
cron_test2:0/10 * * * * ?
current_time1:10:54:05
学习更多编程常识,请关注我的公众号:
代码的路