亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

spring boot整合quartz實(shí)現(xiàn)多個(gè)定時(shí)任務(wù)的方法

 更新時(shí)間:2018年01月16日 11:33:24   作者:牛奮lch  
這篇文章主要介紹了spring boot整合quartz實(shí)現(xiàn)多個(gè)定時(shí)任務(wù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

最近收到了很多封郵件,都是想知道spring boot整合quartz如何實(shí)現(xiàn)多個(gè)定時(shí)任務(wù)的,由于本人生產(chǎn)上并沒(méi)有使用到多個(gè)定時(shí)任務(wù),這里給個(gè)實(shí)現(xiàn)的思路。

1、新建兩個(gè)定時(shí)任務(wù),如下:

public class ScheduledJob implements Job{  
  @Override 
  public void execute(JobExecutionContext context) throws JobExecutionException {  
    System.out.println("schedule job1 is running…………………………………… ");  
  } 
} 
public class ScheduledJob2 implements Job { 
 
  @Override 
  public void execute(JobExecutionContext context) throws JobExecutionException {  
    System.out.println("schedule job2 is running ……………………………………………………");  
  } 
} 

2、配置以上兩個(gè)任務(wù)

@Component 
public class SchedulerAllJob { 
  @Autowired 
  private SchedulerFactoryBean schedulerFactoryBean;    
  /* 
   * 此處可以注入數(shù)據(jù)庫(kù)操作,查詢(xún)出所有的任務(wù)配置 
   */    
  /** 
   * 該方法用來(lái)啟動(dòng)所有的定時(shí)任務(wù) 
   * @throws SchedulerException 
   */ 
  public void scheduleJobs() throws SchedulerException { 
    Scheduler scheduler = schedulerFactoryBean.getScheduler();      
    /** 
     *  
     */ 
    scheduleJob1(scheduler);  
    scheduleJob2(scheduler);  
  } 
   
  /** 
   * 配置Job1 
   * 此處的任務(wù)可以配置可以放到properties或者是放到數(shù)據(jù)庫(kù)中 
   * 如果此時(shí)需要做到動(dòng)態(tài)的定時(shí)任務(wù),請(qǐng)參考:http://blog.csdn.net/liuchuanhong1/article/details/60873295 
   * 博客中的ScheduleRefreshDatabase類(lèi) 
   * @param scheduler 
   * @throws SchedulerException 
   */ 
  private void scheduleJob1(Scheduler scheduler) throws SchedulerException{ 
    /* 
     * 此處可以先通過(guò)任務(wù)名查詢(xún)數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)中存在該任務(wù),則按照ScheduleRefreshDatabase類(lèi)中的方法,更新任務(wù)的配置以及觸發(fā)器 
     * 如果此時(shí)數(shù)據(jù)庫(kù)中沒(méi)有查詢(xún)到該任務(wù),則按照下面的步驟新建一個(gè)任務(wù),并配置初始化的參數(shù),并將配置存到數(shù)據(jù)庫(kù)中 
     */ 
    JobDetail jobDetail = JobBuilder.newJob(ScheduledJob.class) .withIdentity("job1", "group1").build();  
    // 每5s執(zhí)行一次 
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?");  
    CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1") .withSchedule(scheduleBuilder).build();  
    scheduler.scheduleJob(jobDetail,cronTrigger);  
  }    
  /** 
   * 配置Job 
   * @param scheduler 
   * @throws SchedulerException 
   */ 
  private void scheduleJob2(Scheduler scheduler) throws SchedulerException{  
    JobDetail jobDetail = JobBuilder.newJob(ScheduledJob2.class) .withIdentity("job2", "group1").build(); 
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/10 * * * * ?");  
    // 每10s執(zhí)行一次 
    CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger2", "group1") .withSchedule(scheduleBuilder).build();  
    scheduler.scheduleJob(jobDetail,cronTrigger); 
  } 
} 

3、啟動(dòng)兩個(gè)任務(wù)

@Configuration 
@EnableScheduling 
@Component 
public class SchedulerListener {    
  @Autowired 
  public SchedulerAllJob myScheduler;    
  /** 
   * 啟動(dòng)的時(shí)候執(zhí)行該方法,或者是使用ApplicationListener,在啟動(dòng)的時(shí)候執(zhí)行該方法 
   * 具體使用見(jiàn):http://blog.csdn.net/liuchuanhong1/article/details/77568187 
   * @throws SchedulerException 
   */ 
  @Scheduled(cron="0 08 18 ? * *") 
  public void schedule() throws SchedulerException {  
      myScheduler.scheduleJobs(); 
   }  
   
  @Bean 
  public SchedulerFactoryBean schedulerFactoryBean(){ 
    SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();  
    return schedulerFactoryBean;  
  } 
} 

4、測(cè)試結(jié)果如下

schedule job1 is running……………………………………  
schedule job2 is running …………………………………………………… 
schedule job1 is running……………………………………  
schedule job1 is running……………………………………  
schedule job2 is running …………………………………………………… 
schedule job1 is running……………………………………  
schedule job1 is running……………………………………  
schedule job2 is running …………………………………………………… 
schedule job1 is running……………………………………  

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論