SpringBoot ~ 定时任务Quartz

简介: SpringBoot定时任务Quartz quartz是一个功能丰富的开源作业调度库 添加pom依赖 org.springframework.boot spring-boot-starter...

定时任务Quartz

quartz是一个功能丰富的开源作业调度库

  1. 添加pom依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-quartz</artifactId>
    </dependency>
  2. 创建定时Job

    • 通过普通JavaBean创建,添加@Component注解将之注册到容器
    /**
     * @author wsyjlly
     * @create 2019.07.17 - 14:40
     **/
    @Component
    public class ScheduleDemo2 {
        public void schedule(){
            System.out.println("ScheduleDemo2.schedule...");
        }
    }
    • 通过继承抽象类QuartzJobBean创建,该方式需要实现该类中的executeInternal方法,该方法在任务被调用时使用。
    /**
     * @author wsyjlly
     * @create 2019.07.17 - 14:40
     **/
    public class ScheduleDemo3 extends QuartzJobBean {
        private String name;
        public void setName(String name){
            this.name = name;
        }
    
        @Override
        protected void executeInternal(JobExecutionContext jobExecutionContext){
            System.out.println("ScheduleDemo3.executeInternal..."+name);
        }
    }
    
  3. 创建Quartz配置类QuartzConfig对Job进行配置

    /**
     * @author wsyjlly
     * @create 2019.07.17 - 14:47
     **/
    @Configuration
    public class QuartzConfig {
        
        @Bean
        MethodInvokingJobDetailFactoryBean jobDetail1(){
            MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean();
            bean.setTargetBeanName("scheduleDemo2");
            bean.setTargetMethod("schedule");
            return bean;
        }
        
        @Bean
        JobDetailFactoryBean jobDetail2(){
            JobDetailFactoryBean bean = new JobDetailFactoryBean();
            bean.setJobClass(ScheduleDemo3.class);
            JobDataMap jobDataMap = new JobDataMap();
            jobDataMap.put("name","ysw");
            bean.setJobDataMap(jobDataMap);
            bean.setDurability(true);
            return bean;
        }
        
        @Bean
        SimpleTriggerFactoryBean simpleTrigger(){
            SimpleTriggerFactoryBean bean = new SimpleTriggerFactoryBean();
            bean.setJobDetail(jobDetail1().getObject());
            bean.setRepeatCount(3);
            bean.setStartDelay(1000);
            bean.setRepeatInterval(2000);
            return bean;
        }
        
        @Bean
        CronTriggerFactoryBean cronTrigger(){
            CronTriggerFactoryBean bean = new CronTriggerFactoryBean();
            bean.setJobDetail(jobDetail2().getObject());
            bean.setCronExpression("* * * * * ?");
            return bean;
        }
    
        @Bean
        SchedulerFactoryBean schedulerFactory(){
            SchedulerFactoryBean bean = new SchedulerFactoryBean();
            SimpleTrigger simpleTrigger = simpleTrigger().getObject();
            CronTrigger cronTrigger = cronTrigger().getObject();
            bean.setTriggers(simpleTrigger,cronTrigger);
            return bean;
        }
    }
目录
相关文章
|
7月前
|
druid Java 数据库
Spring Boot的定时任务与异步任务
Spring Boot的定时任务与异步任务
|
7月前
|
Java 调度 Spring
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
663 0
|
4月前
|
Java 关系型数据库 MySQL
SpringBoot 集成 Quartz + MySQL
SpringBoot 集成 Quartz + MySQL
116 1
|
5月前
|
SQL Java 调度
实时计算 Flink版产品使用问题之使用Spring Boot启动Flink处理任务时,使用Spring Boot的@Scheduled注解进行定时任务调度,出现内存占用过高,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
消息中间件 设计模式 Java
SpringBoot+Schedule 定时任务的配置开关
SpringBoot+Schedule 定时任务的配置开关
173 0
SpringBoot+Schedule 定时任务的配置开关
|
6月前
|
监控 Java 调度
Spring Boot中的定时任务调度
Spring Boot中的定时任务调度
|
6月前
|
SQL API 调度
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
224 0
|
6月前
|
Java API 调度
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
81 0
|
7月前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
102 6
|
7月前
|
Java Spring 容器
SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题
SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题
256 1