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秒:

  • 相关阅读:
    第三十四节(java-实现在线翻译)
    第三十三节(java-操作Excel实现企业级批量处理大数据)
    第三十二节( Java-实现体育彩票开奖系统)
    第三十一节(java-实现QQ空间访问量统计系统)
    第三十节(java-实现水印图片)
    使用VBA批量CSV转XLS(97-2003)
    WPF中Datagrid控件添加行号
    简单多播委托Demo
    使用Linq查找重复
    简单的操作符重载,笔记
  • 原文地址:https://www.cnblogs.com/ring2/p/11399295.html
Copyright © 2011-2022 走看看