首先在pom.xml中添加quartz的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
其次,说一下创建一个定时任务的步骤,所谓定时任务,包括两个部分:
一个是要定时,就是要在一定的时机执行。
另一个就是要做一个任务,做一个任务又包括两个方面,一个是任务的大致描述信息讲述一下做个什么事儿,另一个是任务的步骤。就比如,我说去下楼取个快递,这就是描述信息;下楼取快递又要坐电梯,联系快递员这就是一系列任务的步骤。
下面来看一下java中是怎么把定时任务进行抽象的:
首先来定义一个任务:
public class QuartzJob extends QuartzJobBean{
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
System.out.println("执行定时任务");
}
}
其次制定一下如何做这个任务:
@Configuration
public class QuartzConfig {
/**
*JobDetail是对任务的基本描述
*/
@Bean
public JobDetail quartzJobDetail() {
return JobBuilder.newJob(QuartzJob.class).withIdentity("QuartzJob")
.storeDurably().build();
}
/**
*Trigger描述了在什么时机做这个任务
*/
@Bean
public Trigger quartzTrigger() {
//每天凌晨2点触发
String cron = "0 0 1 * * ?";
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cron).withMisfireHandlingInstructionDoNothing();
return TriggerBuilder.newTrigger().forJob(pushDataJobDetail())
.withIdentity("pushDataTrigger").withSchedule(cronScheduleBuilder).build();
}
}