最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring實(shí)現(xiàn)動(dòng)態(tài)修改時(shí)間參數(shù)并手動(dòng)開(kāi)啟關(guān)停操作

 更新時(shí)間:2017年09月14日 16:48:00   作者:游魚(yú)遷徙  
spring實(shí)現(xiàn)定時(shí)任務(wù)的方式有三種,分別是java自帶的timer類(lèi)、spring task和quartz三種。本文只介紹spring自帶的task和第三方quartz,感興趣的朋友參考下吧

spring實(shí)現(xiàn)定時(shí)任務(wù)的方式有三種,分別是java自帶的timer類(lèi)、spring task和quartz三種。

  本文只介紹spring自帶的task和第三方quartz。spirng task可以將它比作一個(gè)輕量級(jí)的Quartz,使用起來(lái)非常簡(jiǎn)單,除spring相關(guān)的包外不需要額外的包,而且支持注解和配置文件兩種。接著直接演示spring task注解實(shí)現(xiàn)方式。

  首先,創(chuàng)建任務(wù)類(lèi),如下:

@Component
public class MyScheduler {
  int i =0;
  public void run(){
    i++;
    // 任務(wù)邏輯  
    System.out.println("第"+(i)+"次開(kāi)始執(zhí)行操作... " +"時(shí)間:【" 
    + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS").format(new Date()) 
    + "】"); 
  }
}

  接著,在spring的配置文件中添加命名空間及描述:

 <beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:task="http://www.springframework.org/schema/task"  
  ...... 
  xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"> 

  最后,spring配置文件來(lái)一發(fā):

<task:scheduled-tasks>  
    <task:scheduled ref="myScheduler" method="run" cron="0/5 * * * * ?"/>  
</task:scheduled-tasks> 

  大功告成,可以用了,但是感覺(jué)很麻煩,也很死板,也就用來(lái)寫(xiě)寫(xiě)demo,那么就稍微改造一下吧。

@Service
@Lazy(false)
@EnableScheduling
public class MyScheduler extends BaseService implements SchedulingConfigurer{
  public static String cron = "0/2 * * * * ?";
  int i =0;
  @Override
  public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
    taskRegistrar.addTriggerTask(new Runnable() {
      @Override
      public void run() {
        i++;
        // 需要實(shí)現(xiàn)的任務(wù)邏輯  
        logger.info("第"+(i)+"次開(kāi)始執(zhí)行操作... " +"時(shí)間:【" 
        + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS").format(new Date()) 
        + "】"); 
      }
    }, new Trigger(){ 
      @Override 
      public Date nextExecutionTime(TriggerContext triggerContext) { 
        //任務(wù)觸發(fā),可修改任務(wù)的執(zhí)行周期  
        CronTrigger trigger = new CronTrigger(cron); 
        Date nextExec = trigger.nextExecutionTime(triggerContext); 
        return nextExec;  
      } 
    }); 
  }
}

  實(shí)現(xiàn)SchedulingConfigurer接口的configureTasks方法,如果直接啟動(dòng)項(xiàng)目,就可以實(shí)現(xiàn)每秒5次該方法的執(zhí)行了,一旦cron參數(shù)被修改,ScheduledTaskRegistrar偵測(cè)到后會(huì)重新創(chuàng)建一個(gè)觸發(fā)器來(lái)實(shí)現(xiàn)新的cron表達(dá)式任務(wù),這就解決了動(dòng)態(tài)調(diào)度定時(shí)任務(wù)的問(wèn)題了,而之前spring配置文件中關(guān)于任務(wù)類(lèi)的內(nèi)容也可以刪除了。另外,你可以修改spring task的任務(wù)池來(lái)增加可同時(shí)存在的任務(wù)數(shù)量,如下:

<task:executor id="executor" pool-size="10"/> 
  <task:scheduler id="scheduler" pool-size="10"/>
<task:annotation-driven scheduler="scheduler" executor="executor" proxy-target-class="true"/> 

  我們?cè)趙eb項(xiàng)目中有時(shí)候需要手動(dòng)關(guān)停定時(shí)任務(wù),或者需要立即執(zhí)行定時(shí)任務(wù)具有的功能,這時(shí)的spring task就力不從心了,這也是它輕量級(jí)的原因,使用簡(jiǎn)單,但提供的功能不夠強(qiáng)大,這時(shí)候就輪到Quartz出場(chǎng)了。Quartz是OpenSymphony開(kāi)源組織在Job scheduling領(lǐng)域又一個(gè)開(kāi)源項(xiàng)目,它可以與J2EE與J2SE應(yīng)用程序相結(jié)合也可以單獨(dú)使用。Quartz可以用來(lái)創(chuàng)建簡(jiǎn)單或?yàn)檫\(yùn)行十個(gè),百個(gè),甚至是好幾萬(wàn)個(gè)Jobs這樣復(fù)雜的程序。Jobs可以做成標(biāo)準(zhǔn)的Java組件或 EJBs。

  各位有興趣可以去參考jeecg框架的定時(shí)任務(wù)開(kāi)發(fā),它對(duì)其進(jìn)行了整合,使用起來(lái)及其方便。

  接著我們自己來(lái)整合Quartz,實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)。先理清思路,1.導(dǎo)入jar包;2.配置spring文件;3.編寫(xiě)任務(wù)代碼。

  首先導(dǎo)入需要的jar包,我這里使用spring 4.1.9版本及Quartz 2.2.7,對(duì)了,spring 3.1.x 以上才支持 Quartz 2.x 的jar包,原因就不細(xì)說(shuō)了,各位自行百度。

總結(jié)

以上所述是小編給大家介紹的Spring實(shí)現(xiàn)動(dòng)態(tài)修改時(shí)間參數(shù)并手動(dòng)開(kāi)啟關(guān)停操作,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 解析Jmeter脫離Jenkins后Ant集成郵件通知問(wèn)題

    解析Jmeter脫離Jenkins后Ant集成郵件通知問(wèn)題

    今天來(lái)講下本地的ant構(gòu)建并發(fā)送郵件。配置下來(lái)挺順利也挺簡(jiǎn)單的,對(duì)Jmeter脫離Jenkins后Ant集成郵件通知問(wèn)題感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Java經(jīng)典面試題匯總:JVM

    Java經(jīng)典面試題匯總:JVM

    本篇總結(jié)的是JVM相關(guān)的面試題,后續(xù)會(huì)持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯(cuò)誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • 詳解Spring AOP

    詳解Spring AOP

    本文非常詳細(xì)講解了Spring AOP,本篇文章通過(guò)大量的代碼,講解了Spring AOP的使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • SpringBoot中的自動(dòng)配置原理詳解

    SpringBoot中的自動(dòng)配置原理詳解

    這篇文章主要介紹了SpringBoot中的自動(dòng)配置原理詳解,springboot的自動(dòng)配置類(lèi)直觀的表現(xiàn)就是通過(guò)一系列的注解,使得springboot項(xiàng)目在啟動(dòng)的時(shí)候從配置文件中加載需要自動(dòng)配置的類(lèi),注入容器中,需要的朋友可以參考下
    2024-01-01
  • Spring探秘之如何妙用BeanPostProcessor

    Spring探秘之如何妙用BeanPostProcessor

    BeanPostProcessor也稱(chēng)為Bean后置處理器,它是Spring中定義的接口,在Spring容器的創(chuàng)建過(guò)程中會(huì)回調(diào)BeanPostProcessor中定義的兩個(gè)方法,這篇文章主要給大家介紹了關(guān)于Spring探秘之如何妙用BeanPostProcessor的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Java實(shí)現(xiàn)棧和隊(duì)列面試題

    Java實(shí)現(xiàn)棧和隊(duì)列面試題

    這篇文章主要介紹了Java實(shí)現(xiàn)棧和隊(duì)列的面試題,每個(gè)例題代碼實(shí)現(xiàn)非常詳細(xì),每一個(gè)方法講解也很到位,特別適合參加Java面試的朋友閱讀。
    2015-09-09
  • Spring?@Conditional通過(guò)條件控制bean注冊(cè)過(guò)程

    Spring?@Conditional通過(guò)條件控制bean注冊(cè)過(guò)程

    這篇文章主要為大家介紹了Spring?@Conditional通過(guò)條件控制bean注冊(cè)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • SpringBoot中將@Bean方法解析為BeanDefinition詳解

    SpringBoot中將@Bean方法解析為BeanDefinition詳解

    這篇文章主要介紹了SpringBoot中將@Bean方法解析為BeanDefinition詳解,得到的BeanDefinition是ConfigurationClassBeanDefinition類(lèi)型,會(huì)為BeanDefinition設(shè)置factoryMethodName,這意味著當(dāng)實(shí)例化這個(gè)bean的時(shí)候?qū)⒉捎霉S(chǎng)方法,需要的朋友可以參考下
    2023-12-12
  • Java?Process中waitFor()的問(wèn)題詳解

    Java?Process中waitFor()的問(wèn)題詳解

    這篇文章主要給大家介紹了關(guān)于Java?Process中waitFor()問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12
  • java數(shù)組的三種擴(kuò)容方式以及程序?qū)崿F(xiàn)詳解

    java數(shù)組的三種擴(kuò)容方式以及程序?qū)崿F(xiàn)詳解

    這篇文章主要介紹了java數(shù)組的三種擴(kuò)容方式以及程序?qū)崿F(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論

广东省| 嘉黎县| 湖北省| 鄂托克旗| 巴东县| 介休市| 绍兴县| 彝良县| 五指山市| 雅江县| 玉山县| 明溪县| 嘉善县| 延庆县| 日土县| 南华县| 兰考县| 平山县| 永兴县| 虎林市| 西和县| 灵台县| 洛扎县| 阿坝县| 辽阳县| 纳雍县| 和龙市| 马尔康县| 松原市| 连州市| 临海市| 丹凤县| 华容县| 夏河县| 侯马市| 蕉岭县| 牡丹江市| 安陆市| 肇州县| 滨州市| 盐边县|