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定时任务");
    }
}
原文地址:https://www.cnblogs.com/lovetl/p/12794140.html