zoukankan      html  css  js  c++  java
  • springboot集成quartz实现任务调度

    quartz

    概述
    • 特点
      • 强大的调度功能
      • 灵活的应用方式
      • 分布式和集群能力
    • 用到的设计模式
      • Builder 模式
      • factory模式
      • 组件模式
      • 链式写法
    • 体系结构
      • 调度器
      • 任务
      • 触发器
    • 架构图
      • Alt text
    spring boot quartz
    • pom配置
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>2.2.3</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>5.1.3.RELEASE</version>
            </dependency>
    
    • 编写job类
    package com.ltf.shop.quartzdemo;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    public class HelloJob implements Job {
        @Override
        public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            System.out.println("hello word quartz");
        }
    }
    
    • 编写quartz定义类
    package com.ltf.shop.quartzconfig;
    
    import com.ltf.shop.quartzdemo.HelloJob;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
    import org.springframework.scheduling.quartz.JobDetailFactoryBean;
    import org.springframework.scheduling.quartz.SchedulerFactoryBean;
    
    @Configuration
    public class QuartzConfig {
        /**
         * 创建Job对象
         */
        @Bean
        public JobDetailFactoryBean jobDetailFactoryBean()
        {
            JobDetailFactoryBean factory=new JobDetailFactoryBean();
            factory.setJobClass(HelloJob.class);
            return  factory;
        }
    
        /**
         * 创建Job对象
         */
    //    @Bean
    //    public SimpleTriggerFactoryBean simpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean)
    //    {
    //        SimpleTriggerFactoryBean simpleTriggerFactoryBean=new SimpleTriggerFactoryBean();
    //        //关联JobDetail对象
    //        simpleTriggerFactoryBean.setJobDetail(jobDetailFactoryBean.getObject());
    //        //设置执行的毫秒数
    //        simpleTriggerFactoryBean.setRepeatInterval(3000);
    //        simpleTriggerFactoryBean.setRepeatCount(15);
    //        return simpleTriggerFactoryBean;
    //    }
    
    //    /**
    //     * 创建scheduler对象
    //     */
    //    @Bean
    //    public SchedulerFactoryBean schedulerFactoryBean(SimpleTriggerFactoryBean simpleTriggerFactoryBean)
    //    {
    //        SchedulerFactoryBean schedulerFactoryBean=new SchedulerFactoryBean();
    //        schedulerFactoryBean.setTriggers(simpleTriggerFactoryBean.getObject());
    //        return schedulerFactoryBean;
    //    }
    
    
        @Bean
        public CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean)
        {
            CronTriggerFactoryBean cronTriggerFactoryBean=new CronTriggerFactoryBean();
            cronTriggerFactoryBean.setJobDetail(jobDetailFactoryBean.getObject());
            cronTriggerFactoryBean.setCronExpression("0/2 * * * * ?");
            return cronTriggerFactoryBean;
        }
    
        @Bean
        public SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean)
        {
            SchedulerFactoryBean schedulerFactoryBean=new SchedulerFactoryBean();
            schedulerFactoryBean.setTriggers(cronTriggerFactoryBean.getObject());
            return schedulerFactoryBean;
        }
    }
    
    
  • 相关阅读:
    LoadRunner系统资源监视
    Loadrunner web_url函数学习(转贴)
    Chrome的开发者工具(Chrome Developer Tools)
    浏览器对同一域名进行请求的最大并发连接数(转贴)
    转贴---Performance Counter(包含最全的Windows计数器解释)
    去掉html代码中多余琐碎的标签
    你永远不知道什么地方有笔误
    office2016开发者选项在哪?
    [VBA]检测一个中文字符串是否包含在另一个字符串中
    电子发票怎么开
  • 原文地址:https://www.cnblogs.com/frankltf/p/10205654.html
Copyright © 2011-2022 走看看