<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Apollo實現cron語句的熱配置

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

原文鏈接

GitHub項目地址

Gitee項目地址

Apollo(阿波羅)是攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規范的權限、流程治理等特性,適用于微服務配置管理場景。

Apollo 與 properties 配置文件的功能相同,都可以設置參數。Apollo 的優點在于,可以實時修改參數的值,而不需要重啟項目。

1 配置 Apollo

本地配置 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.propertiesapollo.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
    +關注

    關注

    19

    文章

    2909

    瀏覽量

    103179
  • Apollo
    +關注

    關注

    5

    文章

    333

    瀏覽量

    18301
  • GitHub
    +關注

    關注

    3

    文章

    458

    瀏覽量

    16015
收藏 人收藏

    評論

    相關推薦

    cron和crontab命令

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

    GATT的notify方式配置語句疑惑?

    GATT的notify方式配置語句疑惑?GATT的notify方式比read、write方式的配置多一條語句:static gattCharCfg_t simpleProfileCha
    發表于 04-01 10:01

    如何對Apollo2.5 CANBUS進行全面調試?

    前言:CANBUS是Apollo需要根據你的底盤寫代碼的地方,感覺也是Apollo最難調試的部分。這部分首先要選好CAN卡,因為不是Apollo推薦的CAN卡,驅動程序和對應接口,可能都需要自己調整
    發表于 08-30 06:02

    apollo2 mcu開發的相關資料分享

    Apollo2 MCU的核心是一個32位的ARM Cortex-M4內核,帶有浮點選項。ARM v7-M體系結構的3個階段的流水線實現以非常低的功耗設計提供了高效的處理。ARM M DAP通過串口線
    發表于 11-01 07:23

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

    ,由于廠家生產原因,導致apollo2外掛的32.768kHz的晶振不能起振 Apollo2時鐘源解析 Apollo2定時器解析 代碼實現...
    發表于 11-04 06:21

    Ambiq Apollo4的相關資料推薦

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

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

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

    在STM32F429-Apollo開發板配置以太網報錯怎么辦

    在正點原子開發板 STM32F429-Apollo開發板,配置以太網,報錯“pcf8574.h:61:47: error: unknown type name 'uint8_t'”,i2c和標準c組件都已經加上了,還需要加什么組件?
    發表于 09-21 11:04

    怎么解決Ambiq Apollo3移植鏈接腳本出錯的問題呢?

    移植Apollo3過程中發現官方工程都使用專用的sct腳本,寫法跟MDK默認生成的格式不同。不知道怎么修改內存映射關系。默認MDK生成的是 RW_IRAM1則是定義 #define
    發表于 03-14 10:43

    開關語句和循環語句

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

    Apollo計算平臺配置經驗分享:5000元搞定

    成功運行Apollo環境需要購買多少錢的設備?
    的頭像 發表于 03-07 14:28 ?1w次閱讀

    PHP簡單實現不依賴于Unix系統Cron的定時任務程序資料說明

    本文檔的主要內容詳細介紹的是PHP簡單實現不依賴于Unix系統Cron的定時任務程序資料說明。
    發表于 03-01 16:52 ?2次下載
    PHP簡單<b class='flag-5'>實現</b>不依賴于Unix系統<b class='flag-5'>Cron</b>的定時任務程序資料說明

    如何動態修改cron參數呢?

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

    條件語句/循環語句simulink的實現方法(一)

    條件語句和循環語句是計算機編程中常用的兩種控制結構
    的頭像 發表于 07-21 16:48 ?7370次閱讀
    條件<b class='flag-5'>語句</b>/循環<b class='flag-5'>語句</b>simulink的<b class='flag-5'>實現</b>方法(一)

    assign語句和always語句的用法

    Assign語句和Always語句是在硬件描述語言(HDL)中常用的兩種語句,用于對數字電路建模和設計。Assign語句用于連續賦值,而Always
    的頭像 發表于 02-22 16:24 ?708次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>