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/learn-apollo-cron
Gitee地址:https://gitee.com/Snowstorm0/learn-apollo-cron
在运行项目之前需要修改 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
-
JAVA
+关注
关注
20文章
2997浏览量
115685 -
Apollo
+关注
关注
5文章
350浏览量
19638 -
GitHub
+关注
关注
3文章
484浏览量
18425
发布评论请先 登录
cron和crontab命令
如何对Apollo2.5 CANBUS进行全面调试?
apollo2外挂的32.768kHz的晶振不起振的原因
Ambiq Apollo4的相关资料推荐
Apollo Heritage版音频接口附带的插件
在STM32F429-Apollo开发板配置以太网报错怎么办
Linux操作系统定时任务系统Cron入门分析
PHP简单实现不依赖于Unix系统Cron的定时任务程序资料说明

Apollo实现cron语句的热配置
评论