焦点日报:Apollo实现cron语句的热配置
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,...
GitHub项目地址
(资料图片仅供参考)
Gitee项目地址
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
Apollo 与 properties 配置文件的功能相同,都可以设置参数。Apollo 的优点在于,可以实时修改参数的值,而不需要重启项目。
本地配置 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: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
标签:
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,...
复星集团过去在青岛布局了崂山ClubMed项目,投资了青岛酷特智能、思普润水务等企业。
奥利奥饼干应该是很多人的童年回忆,那么它是属于哪个国家的零食?奥利奥是不是穿出明年要涨价了?对于...
近期,上交所公布了沪市主板上市公司2021至2022年度信息披露工作评价结果,超八成优良。此外,也有少部...
人民网北京3月26日电(欧阳易佳)美国东部时间3月22日至24日,2023年联合国水大会在纽约联合国总部召开。3月23
1、小白狼是动画片《喜羊羊与灰太狼》中的龙套,小白狼不仅长得帅而且一直有羊肉吃。2、红太狼经常对灰...
1、花露水主要是起到止痒、杀菌、防痱以及预防蚊子叮咬的作用。2、其次将花露水抹在太阳穴部位还能保持...
1、武侠,是中国独有的一种概念和文化。中国拥有丰富的武术文化历史,并且在历史的长河中融入了儒家、道...
1、宫腔粘连是由反复流产或泌尿生殖道感染引起的。2、宫腔粘连有轻重之分,较轻的宫腔粘连没有太多症状...
冯友兰先生居住燕南园的时候,女儿宗璞夫妇陪侍。素琰与宗璞有文字之交,每年春节前,她总会给冯先生府...