国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

spring boot整合quartz實現多個定時任務的方法

2024-07-13 10:16:48
字體:
來源:轉載
供稿:網友

最近收到了很多封郵件,都是想知道spring boot整合quartz如何實現多個定時任務的,由于本人生產上并沒有使用到多個定時任務,這里給個實現的思路。

1、新建兩個定時任務,如下:

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、配置以上兩個任務

@Component public class SchedulerAllJob {   @Autowired   private SchedulerFactoryBean schedulerFactoryBean;      /*    * 此處可以注入數據庫操作,查詢出所有的任務配置    */      /**    * 該方法用來啟動所有的定時任務    * @throws SchedulerException    */   public void scheduleJobs() throws SchedulerException {     Scheduler scheduler = schedulerFactoryBean.getScheduler();          /**      *       */     scheduleJob1(scheduler);      scheduleJob2(scheduler);    }      /**    * 配置Job1    * 此處的任務可以配置可以放到properties或者是放到數據庫中    * 如果此時需要做到動態的定時任務,請參考:http://blog.csdn.net/liuchuanhong1/article/details/60873295    * 博客中的ScheduleRefreshDatabase類    * @param scheduler    * @throws SchedulerException    */   private void scheduleJob1(Scheduler scheduler) throws SchedulerException{     /*      * 此處可以先通過任務名查詢數據庫,如果數據庫中存在該任務,則按照ScheduleRefreshDatabase類中的方法,更新任務的配置以及觸發器      * 如果此時數據庫中沒有查詢到該任務,則按照下面的步驟新建一個任務,并配置初始化的參數,并將配置存到數據庫中      */     JobDetail jobDetail = JobBuilder.newJob(ScheduledJob.class) .withIdentity("job1", "group1").build();      // 每5s執行一次     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執行一次     CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger2", "group1") .withSchedule(scheduleBuilder).build();      scheduler.scheduleJob(jobDetail,cronTrigger);   } } 

3、啟動兩個任務

@Configuration @EnableScheduling @Component public class SchedulerListener {      @Autowired   public SchedulerAllJob myScheduler;      /**    * 啟動的時候執行該方法,或者是使用ApplicationListener,在啟動的時候執行該方法    * 具體使用見: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、測試結果如下

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……………………………………  

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安龙县| 永顺县| 光泽县| 姜堰市| 肥乡县| 南昌县| 松滋市| 兴业县| 肥西县| 平乐县| 阿拉善右旗| 钟祥市| 北海市| 平潭县| 驻马店市| 德兴市| 桦南县| 杭锦旗| 泽州县| 神农架林区| 会宁县| 桓台县| 乳山市| 板桥市| 邛崃市| 阿拉善盟| 高尔夫| 崇左市| 辽源市| 罗定市| 萨迦县| 深泽县| 四平市| 和政县| 大冶市| 南郑县| 尖扎县| 福安市| 定远县| 改则县| 永福县|