0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Apollo實(shí)現(xiàn)cron語句的熱配置

Java開發(fā) ? 來源:代碼的路 ? 作者:代碼的路 ? 2023-01-13 16:02 ? 次閱讀

原文鏈接

GitHub項(xiàng)目地址

Gitee項(xiàng)目地址

Apollo(阿波羅)是攜程框架部門研發(fā)的分布式配置中心,能夠集中化管理應(yīng)用不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r推送到應(yīng)用端,并且具備規(guī)范的權(quán)限、流程治理等特性,適用于微服務(wù)配置管理場景。

Apollo 與 properties 配置文件的功能相同,都可以設(shè)置參數(shù)。Apollo 的優(yōu)點(diǎn)在于,可以實(shí)時修改參數(shù)的值,而不需要重啟項(xiàng)目。

1 配置 Apollo

本地配置 Apollo 的方式參考:

Apollo本地快速部署

2 添加 Apollo 參數(shù)

在Apollo中添加參數(shù):

param.cron_test1=0/5 * * * * ?
param.cron_test2=0/5 * * * * ?

要實(shí)現(xiàn) Apollo 對定時任務(wù) 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;
}

完整項(xiàng)目地址:

GitHub地址:https://github.com/Snowstorm0/learn-apollo-cron

Gitee地址:https://gitee.com/Snowstorm0/learn-apollo-cron

在運(yùn)行項(xiàng)目之前需要修改 resource/application.propertiesapollo.meta 的值,將 localhost 替換為 apollo 的地址,端口號為 Eureka 的端口號(默認(rèn)為8080)。

運(yùn)行該項(xiàng)目,可以看到輸出:

cron_test1:0/5 * * * * ?
current_time1:10:53:13
cron_test2:0/5 * * * * ?
current_time2:10:53:13

在 Apollo 中將 cron 語句改為 0/10 * * * * ?,不需要重啟,即可看到項(xiàng)目的輸出變?yōu)椋?/p>

cron_test1:0/10 * * * * ?
current_time2:10:54:05
cron_test2:0/10 * * * * ?
current_time1:10:54:05
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2946

    瀏覽量

    104361
  • Apollo
    +關(guān)注

    關(guān)注

    5

    文章

    339

    瀏覽量

    18372
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    461

    瀏覽量

    16324
收藏 人收藏

    評論

    相關(guān)推薦

    cron和crontab命令

    本帖最后由 windworld 于 2016-2-24 14:08 編輯 cron機(jī)制cron可以讓系統(tǒng)在指定的時間,去執(zhí)行某個指定的工作,我們可以使用crontab指令來管理cron機(jī)制
    發(fā)表于 02-24 13:33

    如何對Apollo2.5 CANBUS進(jìn)行全面調(diào)試?

    前言:CANBUS是Apollo需要根據(jù)你的底盤寫代碼的地方,感覺也是Apollo最難調(diào)試的部分。這部分首先要選好CAN卡,因?yàn)椴皇?b class='flag-5'>Apollo推薦的CAN卡,驅(qū)動程序和對應(yīng)接口,可能都需要自己調(diào)整
    發(fā)表于 08-30 06:02

    apollo2外掛的32.768kHz的晶振不起振的原因

    ,由于廠家生產(chǎn)原因,導(dǎo)致apollo2外掛的32.768kHz的晶振不能起振 Apollo2時鐘源解析 Apollo2定時器解析 代碼實(shí)現(xiàn)...
    發(fā)表于 11-04 06:21

    Ambiq Apollo4的相關(guān)資料推薦

    今天翻官方的網(wǎng)站,發(fā)現(xiàn)了 Apollo4 的鏈接。從其中下來Apollo3-Apollo4-SDK-2020.06.20,發(fā)現(xiàn)了\boards\apollo4_eb\examples\u***\tinyu***_cdc這個不錯,
    發(fā)表于 12-13 08:30

    Apollo Heritage版音頻接口附帶的插件

     Universal Audio在去年推出的Apollo Heritage版音頻接口提供了5個或10個獲獎的UAD插件,包括Teletronix?、Fairchild?、Pultec?、Helios
    發(fā)表于 01-24 08:59

    在STM32F429-Apollo開發(fā)板配置以太網(wǎng)報(bào)錯怎么辦

    在正點(diǎn)原子開發(fā)板 STM32F429-Apollo開發(fā)板,配置以太網(wǎng),報(bào)錯“pcf8574.h:61:47: error: unknown type name 'uint8_t'”,i2c和標(biāo)準(zhǔn)c組件都已經(jīng)加上了,還需要加什么組件?
    發(fā)表于 09-21 11:04

    開關(guān)語句和循環(huán)語句

    switch/case開關(guān)語句是一種多分支選擇語句,是用來實(shí)現(xiàn)多方向條件分支的語句。雖然從理論上講采用條件語句也可以
    發(fā)表于 07-15 14:26 ?18次下載

    Linux操作系統(tǒng)定時任務(wù)系統(tǒng)Cron入門分析

    /service crond reload //重新載入配置 你也可以將這個服務(wù)在系統(tǒng)啟動的時候自動啟動: 在/etc/rc.d/rc.local這個腳本的末尾加上: /sbin/service crond start 現(xiàn)在Cron這個服務(wù)已經(jīng)在進(jìn)程里面了,我們就
    發(fā)表于 11-07 10:12 ?0次下載

    Apollo計(jì)算平臺配置經(jīng)驗(yàn)分享:5000元搞定

    成功運(yùn)行Apollo環(huán)境需要購買多少錢的設(shè)備?
    的頭像 發(fā)表于 03-07 14:28 ?1w次閱讀

    PHP簡單實(shí)現(xiàn)不依賴于Unix系統(tǒng)Cron的定時任務(wù)程序資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是PHP簡單實(shí)現(xiàn)不依賴于Unix系統(tǒng)Cron的定時任務(wù)程序資料說明。
    發(fā)表于 03-01 16:52 ?2次下載
    PHP簡單<b class='flag-5'>實(shí)現(xiàn)</b>不依賴于Unix系統(tǒng)<b class='flag-5'>Cron</b>的定時任務(wù)程序資料說明

    SpringBoot配置文件application

    ("#{${sys-num.mymap}}") private MapString, String numMap;} cron表達(dá)式 YML配置文件: schedule: 0 0 / 1 * * * ? 代碼示例
    的頭像 發(fā)表于 01-13 15:28 ?585次閱讀

    條件判斷語句(if語句

    條件判斷語句,作為任何編程語言都不可缺少的內(nèi)容,在C語言中也不例外。條件判斷語句可以讓程序的功能更加復(fù)雜,從而實(shí)現(xiàn)各種各樣的功能。
    的頭像 發(fā)表于 02-21 15:24 ?3186次閱讀
    條件判斷<b class='flag-5'>語句</b>(if<b class='flag-5'>語句</b>)

    C語言for語句介紹

    除了可以用while語句和do...while語句實(shí)現(xiàn)循環(huán)外,C語言還提供for語句實(shí)現(xiàn)循環(huán),而且for
    的頭像 發(fā)表于 03-09 11:14 ?1129次閱讀

    如何動態(tài)修改cron參數(shù)呢?

    按正常來講,修改定時任務(wù)的執(zhí)行周期,把服務(wù)停下來,改下任務(wù)的cron參數(shù),再重啟服務(wù)就搞搞定了。這種方式很簡單,沒有可說的,但是有沒有一種可能,在不停服務(wù)的情況下,就可以動態(tài)的修改任務(wù)的cron參數(shù)呢?哈哈,那是必須的必。
    的頭像 發(fā)表于 04-12 11:04 ?1840次閱讀

    條件語句/循環(huán)語句simulink的實(shí)現(xiàn)方法(一)

    條件語句和循環(huán)語句是計(jì)算機(jī)編程中常用的兩種控制結(jié)構(gòu)
    的頭像 發(fā)表于 07-21 16:48 ?9962次閱讀
    條件<b class='flag-5'>語句</b>/循環(huán)<b class='flag-5'>語句</b>simulink的<b class='flag-5'>實(shí)現(xiàn)</b>方法(一)