老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

springbootQuartz動(dòng)態(tài)修改cron表達(dá)式的方法

1、概述: 在開(kāi)發(fā)中有的時(shí)候需要去手動(dòng)禁止和啟用定時(shí)任務(wù),修改定時(shí)任務(wù)的cron表達(dá)式然后再讓其動(dòng)態(tài)生效,之前有過(guò)SSM的類似的業(yè)務(wù)的開(kāi)發(fā)但是忘記寫下來(lái)了。。。只好重新溫習(xí)了一次,加上最近比較流行springBoot所以升級(jí)了一下用springBoot來(lái)完成.

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比扎蘭屯網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式扎蘭屯網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋扎蘭屯地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

2、關(guān)聯(lián)技術(shù) SpringBoot、Quartz、H2、thymeleaf (好像就這么多)

3、具體流程      

1)首先去手動(dòng)創(chuàng)建一個(gè)調(diào)度器工廠對(duì)象-SchedulerFactoryBean;其實(shí)應(yīng)該不用手動(dòng)創(chuàng)建的但是為了顧及到業(yè)務(wù)的復(fù)雜性所以還是創(chuàng)建一個(gè)好用。

 @Bean
  public SchedulerFactoryBean schedulerFactory(){
    SchedulerFactoryBean factoryBean = new SchedulerFactoryBean();
    /*用于Quartz集群,啟動(dòng)時(shí)更新已存在的Job*/
    factoryBean.setOverwriteExistingJobs(true);
    /*定時(shí)任務(wù)開(kāi)始啟動(dòng)后延遲5秒開(kāi)始*/
    factoryBean.setStartupDelay(5);
    return factoryBean;
  }

2)獲取到

//得到調(diào)度器
Scheduler scheduler = schedulerFactoryBean.getScheduler();

3)判斷是否有觸發(fā)器-trigger存在其中,因?yàn)橛锌赡苷f(shuō)上次的觸發(fā)器 并沒(méi)有刪除

//獲得觸發(fā)器
TriggerKey triggerKey = TriggerKey.triggerKey(config.getName(), config.getGroup());
CronTrigger trigger = (CronTrigger)scheduler.getTrigger(triggerKey);

4)創(chuàng)建一個(gè)任務(wù)類需要繼承Job,實(shí)現(xiàn)方法execute。需要在其中執(zhí)行定時(shí)任務(wù)如下:

//注釋作用,當(dāng)上一個(gè)任務(wù)未結(jié)束時(shí)下一個(gè)任務(wù)需進(jìn)行等待
@DisallowConcurrentExecution
public class QuartzJobFactory implements Job {
  public static final  String SCHEDULEJOBKEY="scheduleJob";
  //execute會(huì)根據(jù)cron的規(guī)則進(jìn)行執(zhí)行
  @Override
  public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {   
        Config config = (Config) jobExecutionContext.getMergedJobDataMap().get(SCHEDULEJOBKEY);
        TaskUtils.invokMethod(config);
    }
}

5)將執(zhí)行實(shí)例添加到任務(wù)當(dāng)中去,我在例子是將執(zhí)行任務(wù)的信息封裝到了對(duì)象config當(dāng)中然后在任務(wù)QuartzJobFactoryz中進(jìn)行解讀的

public static void invokMethod(Config config){
    Object obj=null;
    Class clazz=null;
    //通過(guò)Spring上下文去找 也有可能找不到
   try {
      obj= SpringUtils.getBean(config.getClassPath().split("\\.")[config.getClassPath().split("\\.").length - 1]);
   if (obj == null){
        clazz = Class.forName(config.getClassPath());
        obj = clazz.newInstance();
      }else{
       clazz =obj.getClass();
      }
    }catch (Exception e){
 throw new RuntimeException("ERROR:TaskUtils is Bean Create please check the classpath is`t right or not");
    }
 Method method=null;
    //獲得方法名
    try {
      method = clazz.getDeclaredMethod(config.getMethodName());
   } catch (NoSuchMethodException e) {   
   throw new RuntimeException("ERROR:TaskUtils is Bean the method Create please check the methodName is`t right or not");  
   }   
   //方法執(zhí)行

    try {
      method.invoke(obj);
    } catch (Exception e) {
   throw new RuntimeException("ERROR:TaskUtils is Bean the method execute please check the methodName is`t right or not");
    }
  }

6)創(chuàng)建觸發(fā)器并且綁定cron表達(dá)式

7)在調(diào)度器中將觸發(fā)器和任務(wù)進(jìn)行組合 詳情見(jiàn):com.study.www.service.QuartzTableservice.addJob

  //將cron表達(dá)式進(jìn)行轉(zhuǎn)換    
  CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(config.getCron());   
  //創(chuàng)建觸發(fā)器并將cron表達(dá)式對(duì)象給塞入
  trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
  //在調(diào)度器中將觸發(fā)器和任務(wù)進(jìn)行組合
  scheduler.scheduleJob(jobDetail,trigger);

github:點(diǎn)擊打開(kāi)鏈接

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


本文標(biāo)題:springbootQuartz動(dòng)態(tài)修改cron表達(dá)式的方法
文章網(wǎng)址:http://www.xueling.net.cn/article/jgphjs.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: YY111111少妇无码理论片 | 日本不卡视频在线播放 | 极品美女国产精品免费一区 | 香蕉快播| 亚洲香蕉伊综合在人在线观看 | 人人藻人人澡人人爽 | 亚洲AV无码一区二区三区在线播放 | 久久夜色精品亚洲 | 超碰中文字幕在线 | XXX性XXX国语对白 | 麻豆蜜桃九色在线视频 | 国产精品伊人影院 | 一级看片免费视频 | 亚洲色图偷 | 亚洲国产另类 | 殴美在线| 亚洲美女又黄又爽在线观看 | 台湾男男gay做爽爽的视频 | 被强到爽的邻居人妻 | 成人91在线 | 国产资源在线看 | 久久频这里精品99香蕉 | 欧美性久久久久久 | 性一交一乱一伧老太 | 中文字幕免费精品一区高清 | 中文字幕人妻在线中字 | 91麻豆精品国产91久久久使用方法 | 久久久久国产精品熟女影院 | 人人干人人操人人摸 | 狂野欧美性猛交免费视频 | 日韩1区2区3区 | 诡异时代全球动漫免费观看 | aaa在线 | 日日爱668 | 成人无码做爰www免费软件小说 | 亚洲一区二区三区四区的 | 国产精品高潮久久久久久无码 | 456亚洲影院 | 不卡无在线一区二区三区观 | 天天干国产 | 国产成人亚洲精品青草 |