全球播报:Apollo实现cron语句的热配置
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
(资料图片)
Apollo 与 properties 配置文件的功能相同,都可以设置参数。Apollo 的优点在于,可以实时修改参数的值,而不需要重启项目。
本地配置 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(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且
新华社伦敦3月30日电英国国防部近日确认,英国向乌克兰输送的“挑战者2”主战坦克配备弹药中将包含贫铀弹。消息一宣布,立即遭到多方反对和...
纳思达(002180)03月31日在投资者互动平台表示:尊敬的投资人您好,利盟国际开发的Optra平台目前应用于零售、金融服务、医疗保健、制造业、教
观点网讯:3月30日,苏州市区发布2023年度首批拟出让住宅用地清单,共39宗涉宅地块,总面积154 82万方,总建面267 69万方。其中,姑苏区4宗、吴中区
【昨日市场情况】 价格方面:截止2023年3月30日17:30,上海市场冷轧板卷市场价格4730元 吨,镀锌板卷市场价格5100元 吨。 成交方面:据M
净利暴涨26倍,靠锂盐翻身的吉翔股份拟改名永衫锂业,会被打回原型吗?,锂矿,碳酸锂,锂电池,吉翔股份,永衫锂业
IT之家3月31日消息,原定于今年6月在洛杉矶实体举行的E3游戏展已经取消。这是自2019年以来,该游戏界的夏季盛会首次重返线下活动,但由于任天
互联网在提高人们社会活动质量的同时可能对部分互联网使用者造成伤害。我们要正确认识网络的两面性,用其所长、避其所短,发挥网络对生活的积
[ 相关新闻 ]