文章目录
- 一、定时任务
 - 二、quartz基本概念
 - 三、整合quartz步骤
 - 1、添加依赖
 - 2、创建scheduler
 - 3、创建Job
 - 4、创建任务信息类
 - 5、创建JobDetail和trigger包装类
 - 6、控制层接口实现接口(执行一次、启动定时、暂停任务)
 - 7、访问接口
 - 细节解释
 
一、定时任务
要实现定时任务的功能应该具备:
 1、临时执行一次任务。
 2、启动定时任务,支持cron表达式。
 3、随时暂停任务。
 4、应用重启后自动开启任务。
二、quartz基本概念
- 任务
Job(接口):即想要调用的任务类,需要实现org.quartz.job接口,并重写execute()方法,任务调度时会执行execute()方法。(最新版本继承QuartzJobBean类,重写executeInternal方法) - 触发器
Trigger(接口):即执行任务的触发器,当满足什么条件时会去执行你的任务Job,主要分为根据时长间隔执行的SimpleTrigger和根据日历执行的CronTrigger。 - 调度器
Scheduler(接口):即将Trigger和Job绑定之后,根据Trigger中的设定,负责进行Job调度的组件。 
三、整合quartz步骤
1、添加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
 
2、创建scheduler
package com.xy.quartz;import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class QuartzConfig {@Beanpublic Scheduler scheduler() throws SchedulerException {SchedulerFactory schedulerFactoryBean = new StdSchedulerFactory();return schedulerFactoryBean.getScheduler();}
}
 
3、创建Job
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component;@Component
@Slf4j
public class MyJob implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {JobDataMap jobDataMap = jobExecutionContext.