zoukankan      html  css  js  c++  java
  • java springboot +Quartz 定时任务

    第一种使用spring3.0+自带的定时任务

    第一步:开启定时任务

    @SpringBootApplication
    //开启定时任务
    @EnableScheduling
    public class DemoApplication {
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
        
    }

    第二步:定时任务类

    package com.JobScheduled;

    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;

    import java.util.Date;

    /**
    * @author xulei
    * @version 1.0
    * @date 2020/4/28 13:35
    */
    @Component
    public class FirstScheduled {

    @Scheduled(cron = "0/5 * * * * ?")
    //或直接指定时间间隔,例如:5秒
    //@Scheduled(fixedRate=5000)
    public void runFirstScheduled(){
    System.out.println("定时器任务五秒执行一次————————————————"+ new Date());
    }
    }

    第二种方法:使用Quartz开源项目

    首先引入坐标

          <!--定时器依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-quartz</artifactId>
            </dependency>

    第一步:同上

    第二步:配置类并配置定时任务

    package com.config;
    
    /**
     * @author xulei
     * @version 1.0
     * @date 2020/4/28 14:16
     */
    
    import com.JobScheduled.QuartzDemo;
    import org.quartz.SimpleTrigger;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.quartz.JobDetailFactoryBean;
    import org.springframework.scheduling.quartz.SchedulerFactoryBean;
    import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;
    
    /**
     * Quartz配置类
     */
    @Configuration
    public class QuartzConfig {
        
        //    1.创建Job对象
        @Bean
        public JobDetailFactoryBean jobDetailFactoryBean() {
            JobDetailFactoryBean factoryBean = new JobDetailFactoryBean();
    //        关联自己的类
            factoryBean.setJobClass(QuartzDemo.class);
            return factoryBean;
        }
        
        //    2.创建Trigger对象(简易版)
        @Bean
        public SimpleTriggerFactoryBean simpleTriggerFactoryBean( JobDetailFactoryBean jobDetailFactoryBean) {
            SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean();
    //        关联jobDetail对象
            factoryBean.setJobDetail(jobDetailFactoryBean.getObject());
    //        该参数表示一个执行的毫秒数
            factoryBean.setRepeatInterval(2000);
    //        设置重复次数
            factoryBean.setRepeatCount(5);
            
            return factoryBean;
        }
    
    //    3.创建Scheduler对象
        
        @Bean
        public SchedulerFactoryBean schedulerFactoryBean(SimpleTriggerFactoryBean simpleTriggerFactoryBean){
            
            SchedulerFactoryBean factoryBean = new SchedulerFactoryBean();
            
            factoryBean.setTriggers(simpleTriggerFactoryBean.getObject());
            
            return factoryBean;
        }
    }

    第三步:定时任务类

    package com.JobScheduled;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    /**
     * @author xulei
     * @version 1.0
     * @date 2020/4/28 14:15
     */
    
    /**
     * Job类
     */
    public class QuartzDemo implements Job {
        
        @Override
        public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            System.out.println("Quartz定时任务");
        }
    }
  • 相关阅读:
    ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)
    运维标准化与流程化建设
    运维与自动化运维发展方向
    文件atime未变问题的研究
    ansible 任务委派 delegate_to
    ansible 调优
    windows中安装模拟器后修改模拟器中的hosts方法
    负载均衡服务器主要考量三个指标
    DRBD+NFS+Keepalived高可用环境
    sshpass
  • 原文地址:https://www.cnblogs.com/lovetl/p/12794140.html
Copyright © 2011-2022 走看看