在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

jf_78858299 ? 來(lái)源:SpringBoot ? 作者:林祥纖 ? 2023-04-12 11:04 ? 次閱讀

如何動(dòng)態(tài)修改cron參數(shù)呢?那么我們一起看看具體怎么實(shí)現(xiàn),先看下本節(jié)大綱:

(1)簡(jiǎn)單方式:修改定時(shí)任務(wù)的執(zhí)行周期;

(2)動(dòng)態(tài)修改定時(shí)任務(wù)的執(zhí)行周期;

接下來(lái)看下本節(jié)的具體內(nèi)容:

(1)簡(jiǎn)單方式:修改定時(shí)任務(wù)的執(zhí)行周期;

按正常來(lái)講,修改定時(shí)任務(wù)的執(zhí)行周期,把服務(wù)停下來(lái),改下任務(wù)的cron參數(shù),再重啟服務(wù)就搞搞定了。這種方式很簡(jiǎn)單,沒有可說(shuō)的,但是有沒有一種可能,在不停服務(wù)的情況下,就可以動(dòng)態(tài)的修改任務(wù)的cron參數(shù)呢?哈哈,那是必須的必。

(2)動(dòng)態(tài)修改定時(shí)任務(wù)的執(zhí)行周期;

首先我們先會(huì)回顧下,我們之前是使用了@Scheduled(cron =“0/5 * * * * *”)這種方式適用于固定任務(wù)周期的任務(wù),若要修改任務(wù)執(zhí)行周期,只能走“停服務(wù)—修改任務(wù)執(zhí)行周期—重啟服務(wù)”這條路。那么如何動(dòng)態(tài)修改呢,我們看下步驟:

① 在定時(shí)任務(wù)類上增加@EnabledScheduling注解,并實(shí)現(xiàn)SchedulingConfigurer接口

② 設(shè)置一個(gè)靜態(tài)的cron,用于存放任務(wù)執(zhí)行周期參數(shù)。

③ 開啟一個(gè)線程,用于模擬實(shí)際業(yè)務(wù)中外部原因修改了任務(wù)執(zhí)行周期。

④ 設(shè)置任務(wù)觸發(fā)器,觸發(fā)任務(wù)執(zhí)行。

具體的代碼如下:

package com.kfit.task;

import java.util.Date;

import org.springframework.scheduling.Trigger;

import org.springframework.scheduling.TriggerContext;

importorg.springframework.scheduling.annotation.EnableScheduling;

importorg.springframework.scheduling.annotation.SchedulingConfigurer;

importorg.springframework.scheduling.config.ScheduledTaskRegistrar;

import org.springframework.scheduling.support.CronTrigger;

import org.springframework.stereotype.Component;

/**

  • Spring @Scheduled定時(shí)任務(wù)動(dòng)態(tài)修改cron****參數(shù)
  • @author Angel --守護(hù)天使
  • @version v.0.1
  • @date 2017年4月6日

*/

@Component

@EnableScheduling

**public **class TaskCronChange implements SchedulingConfigurer{

**public ****static** String  *cron* ; 



**public** TaskCronChange() {

    //默認(rèn)情況是:每5秒執(zhí)行一次.

    *cron* = "0/5 * * * * *";

    **new** Thread(**new** Runnable() {

      

       // 開啟新線程模擬外部更改了任務(wù)執(zhí)行周期.

       @Override

       **public ****void** run() {

          **try** {

              // 讓線程睡眠 15秒.

              Thread. *sleep* (15000);

          } **catch** (InterruptedException e) {

              e.printStackTrace();

          }

           //修改為:每10秒執(zhí)行一次.

          *cron* = "0/10 * ** * *";

           System. ***err*** .println("cron change to:"+ *cron* );

       }

   }).start();;

}

 

@Override

**public ****void** configureTasks(ScheduledTaskRegistrar taskRegistrar) {

   Runnable task = **new** Runnable() {

       @Override

       **public ****void** run() {

          //任務(wù)邏輯代碼部分.

          System. ***out*** .println("TaskCronChangetask is running ... "+ **new** Date());

       }

   };

   Trigger trigger = **new** Trigger() {

       @Override

       **public** Date nextExecutionTime(TriggerContext triggerContext) {

          //任務(wù)觸發(fā),可修改任務(wù)的執(zhí)行周期.

          CronTrigger trigger = **new** CronTrigger( *cron* );

          Date nextExec = trigger.nextExecutionTime(triggerContext);

          **return **nextExec;

       }

   };

   taskRegistrar.addTriggerTask(task, trigger);

}

}

這里核心的主要是使用到了ScheduledTaskRegistrar這個(gè)類有一個(gè)方法addTriggerTask(Runnable,Trigger) 兩個(gè)參數(shù),一個(gè)Runnable,一個(gè)是Trigger,在Runnable中執(zhí)行業(yè)務(wù)邏輯代碼,在Trigger修改定時(shí)任務(wù)的執(zhí)行周期。

啟動(dòng)查看控制臺(tái)的打印信息如下:

TaskCronChange task is running ... Thu Apr 0605:38:20 CST 2017

TaskCronChangetask is running ... Thu Apr 06 05:38:25CST 2017

TaskCronChangetask is running ... Thu Apr 06 05:38:30CST 2017

cronchange to:0/10 * * * * *

TaskCronChangetask is running ... Thu Apr 06 05:38:35CST 2017

TaskCronChangetask is running ... Thu Apr 06 05:38:40CST 2017

TaskCronChangetask is running ... Thu Apr 06 05:38:50CST 2017

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

    關(guān)注

    19

    文章

    2975

    瀏覽量

    105166
  • 服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    18541
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    cron和crontab命令

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

    DM8168編碼器可以動(dòng)態(tài)來(lái)修改來(lái)修改profile、level嗎?

    動(dòng)態(tài)參數(shù)里面沒有,請(qǐng)問(wèn)在理論上來(lái)說(shuō)是可以修改的嗎? 是不是把對(duì)應(yīng)的channal先disable然后在M3 video中修改profile,這樣可以嗎?
    發(fā)表于 05-25 05:12

    Z-Stack 1.2.2a 使用znp模式,能否通過(guò)host 動(dòng)態(tài)修改poll rate

    Z-Stack 1.2.2a 使用znp模式,能否通過(guò)host 動(dòng)態(tài)修改poll rate,如果可以 該如何進(jìn)行修改
    發(fā)表于 06-01 01:14

    如何修改BLECC2540中advertData這個(gè)數(shù)組的動(dòng)態(tài)

    1實(shí)現(xiàn)動(dòng)態(tài)修改這個(gè)值0xc5 ];下面這個(gè)函數(shù)是特征值的調(diào)用返回,在這里該作何處理?static void simpleProfileChangeCB( uint8 paramID )[uint8
    發(fā)表于 10-21 09:24

    請(qǐng)問(wèn)怎樣動(dòng)態(tài)修改廣播包的內(nèi)容?

    我使用CC2540,想動(dòng)態(tài)修改廣播包中的數(shù)據(jù),該怎么實(shí)現(xiàn)?藍(lán)牙BLE協(xié)議棧中有沒有支持動(dòng)態(tài)修改廣播包內(nèi)容?項(xiàng)目需求將一些數(shù)據(jù)放在廣播中,廣播給所有的listener,并且這些數(shù)據(jù)時(shí)會(huì)
    發(fā)表于 08-04 08:00

    怎樣去修改分區(qū)表參數(shù)文件

    怎樣去創(chuàng)建可以修改分區(qū)日期數(shù)據(jù)備份?怎樣去修改分區(qū)表參數(shù)文件
    發(fā)表于 03-04 07:13

    怎樣使用STM32去支持并運(yùn)行RTT動(dòng)態(tài)模塊

    的驅(qū)動(dòng),因?yàn)樽罱K編譯的動(dòng)態(tài)模塊需要在文件系統(tǒng)中。進(jìn)入到bsp目錄,使用env工具配置如下:為了支持動(dòng)態(tài)模塊的運(yùn)行,修改 bsp 對(duì)應(yīng)的 rtconfig.py 中編譯動(dòng)態(tài)模塊時(shí)需要用到
    發(fā)表于 06-08 10:58

    請(qǐng)問(wèn)N32926能否調(diào)用動(dòng)態(tài)庫(kù)?需要修改內(nèi)核嗎?

    現(xiàn)在需要開發(fā)一個(gè)項(xiàng)目,中間需要用到第三方的動(dòng)態(tài)庫(kù),請(qǐng)問(wèn)N32926能否調(diào)用動(dòng)態(tài)庫(kù),需要修改內(nèi)核嗎?
    發(fā)表于 06-14 09:14

    Linux操作系統(tǒng)修改內(nèi)核參數(shù)的三種方法詳細(xì)說(shuō)明

    linux內(nèi)核的參數(shù)設(shè)置怎么弄,Linux 操作系統(tǒng)修改內(nèi)核參數(shù)有以下三種方式:
    發(fā)表于 10-06 18:03 ?1.1w次閱讀
    Linux操作系統(tǒng)<b class='flag-5'>修改</b>內(nèi)核<b class='flag-5'>參數(shù)</b>的三種方法詳細(xì)說(shuō)明

    如何在SpringBoot項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)

    之前寫過(guò)文章記錄怎么在SpringBoot項(xiàng)目中簡(jiǎn)單使用定時(shí)任務(wù),不過(guò)由于要借助cron表達(dá)式且都提前定義好放在配置文件里,不能在項(xiàng)目運(yùn)行中動(dòng)態(tài)修改任務(wù)執(zhí)行時(shí)間,實(shí)在不太靈活。
    的頭像 發(fā)表于 09-30 11:16 ?1844次閱讀

    VH03型手持多功能讀數(shù)儀參數(shù)修改方法

    參數(shù)修改有三種實(shí)現(xiàn)方法,快捷鍵修改參數(shù)修改模式和連接上位機(jī)指令修改
    的頭像 發(fā)表于 11-30 17:12 ?855次閱讀
    VH03型手持多功能讀數(shù)儀<b class='flag-5'>參數(shù)</b><b class='flag-5'>修改</b>方法

    教程 1-修改廣告參數(shù)

    教程 1 - 修改廣告參數(shù)
    發(fā)表于 03-15 19:39 ?0次下載
    教程 1-<b class='flag-5'>修改</b>廣告<b class='flag-5'>參數(shù)</b>

    如何動(dòng)態(tài)添加修改刪除定時(shí)任務(wù)?

    如何動(dòng)態(tài)添加修改刪除定時(shí)任務(wù)?那么我們一起看看具體怎么實(shí)現(xiàn),先看下本節(jié)大綱: (1)思路說(shuō)明; (2)代碼解析; (3)修改定時(shí)任務(wù)執(zhí)行周期特別說(shuō)明;
    的頭像 發(fā)表于 04-12 11:06 ?1128次閱讀

    教程 1-修改廣告參數(shù)

    教程 1 - 修改廣告參數(shù)
    發(fā)表于 07-06 18:49 ?0次下載
    教程 1-<b class='flag-5'>修改</b>廣告<b class='flag-5'>參數(shù)</b>

    請(qǐng)問(wèn)Simulink如何在線動(dòng)態(tài)修改模塊參數(shù)

    典型的Simulink模塊雙擊時(shí)會(huì)彈出對(duì)話框,在對(duì)話框中可以設(shè)置模塊參數(shù),如:雙擊正弦波模塊(SineWave),可以設(shè)置正弦波幅值和頻率;
    的頭像 發(fā)表于 07-20 17:23 ?6448次閱讀
    請(qǐng)問(wèn)Simulink如何在線<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>修改</b>模塊<b class='flag-5'>參數(shù)</b><b class='flag-5'>呢</b>?
    主站蜘蛛池模板: 天天干天天射天天舔 | 种子天堂bt | 亚欧有色亚欧乱色视频 | 九色视频在线播放 | 国产秦先生大战白丝97在线 | 国产美女久久久久 | 国产免费人成在线看视频 | 美女扒开尿口给男人看大全 | 男人天堂资源网 | 高清色黄毛片一级毛片 | 色欲情狂 | 亚洲欧美色一区二区三区 | 国产在线视频资源 | 毛色毛片免费观看 | 久久亚洲免费视频 | 久久视频免费看 | 午夜一级毛片 | 91精品欧美激情在线播放 | 视频在线观看h | 爱婷婷网站在线观看 | 四虎影院在线播放 | 在线免费看一级片 | 久久香蕉精品视频 | 国产一级毛片国语版 | 在线中文字幕一区 | 久久精品男人影院 | 天天干夜操 | 一级特黄特黄的大片免费 | 月夜免费观看完整视频 | 手机免费看a | 天天操天天玩 | 永久视频在线观看 | 美女视频永久黄网站免费观看国产 | 色婷婷影视 | 91噜噜噜 | 性欧美bbbbbb动漫 | 日日爱网站| 一本到卡二卡三卡免费高 | 在线播放ww | 免费观看激色视频网站bd | 亚洲第一中文字幕 |