zoukankan      html  css  js  c++  java
  • SpringBoot2.x整合quartz实现多任务定时执行

    一、pom文件中导入相关依赖

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-quartz</artifactId>
            </dependency>

    二、分别编写任务代码类

    /**
     * 任务一
     */
    public class MyQuartzJob extends QuartzJobBean {
    
        @Override
        protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            System.out.println("talk is cheap.");
        }
    }
    /**
     * 任务二
     */
    public class MyQuartzJob1 extends QuartzJobBean {
    
        @Override
        protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            System.out.println("show me the code");
        }
    }

    三、分别编写相关的scheduler类(也可以写在一个类里)

    /**
     * Scheduler来调度Trigger和JobDetil
     * JobDetail来实例化Job类并可以传值
     */
    @Configuration
    public class MyScheduler {
    
        @Bean(name = "JobDetail")
        public JobDetail simpleJobDetail(){
    
            JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob.class).withIdentity("eclipse")
                    .usingJobData("key","value").storeDurably().build();
            return jobDetail;
        }
    
        @Bean(name = "trigger")
        public Trigger simpleJobTrigger(){
    
            SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(4).repeatForever();
    
            return TriggerBuilder.newTrigger().forJob(simpleJobDetail())
                    .withIdentity("sampleTrigger").withSchedule(scheduleBuilder).build();
        }
    }
    @Configuration
    public class MyScheduler1 {
    
        @Bean(name = "JobDetail1")
        public JobDetail simpleJobDetail1(){
    
            JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob1.class).withIdentity("eclipse1")
                    .usingJobData("key","value").storeDurably().build();
            return jobDetail;
        }
    
        @Bean(name = "trigger1")
        public Trigger simpleJobTrigger1(){
    
            SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(6).repeatForever();
    
            return TriggerBuilder.newTrigger().forJob(simpleJobDetail1())
                    .withIdentity("sampleTrigger1").withSchedule(scheduleBuilder).build();
        }
    }

    四、启动springboot即可查看任务执行情况

      具体的执行时间可以自己设置:这里分别是4秒和6秒:

  • 相关阅读:
    企业信息开发平台(5)流程设计(一)
    企业信息开发平台(6)Web表单设计器开源
    Guava的常用方法示例
    apk反编译
    公司注册登记流程
    Git 使用流程
    ZIP压缩和解压字符串
    vue+elementui实现无限级动态菜单树
    vue 开发笔记
    从零到一开发博客后台管理系统(一)
  • 原文地址:https://www.cnblogs.com/ring2/p/11399295.html
Copyright © 2011-2022 走看看