org.springframework.boot
spring-boot-starter-quartz
版本号与SpringBoot 一致即可 .
2. 配置定时任务package com.hejjon.config;
import com.hejjon.job.SaveUserJob;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class QuartzConfig {
private static final String JOB_GROUP_NAME = "PJB_JOBGROUP_NAME";
private static final String TRIGGER_GROUP_NAME = "PJB_TRIGGERGROUP_NAME";
@Bean
public JobDetail saveUserJobDetail() {
return JobBuilder.newJob(SaveUserJob.class)
.withIdentity("saveUserJobDetail", JOB_GROUP_NAME)
.storeDurably() // 即使没有Trigger 关联时, 也不想需要删除该JobDetail
.build();
}
@Bean
public Trigger saveUserJobTrigger() {
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0 12 15 14 5 ? 2022-2022");
return TriggerBuilder.newTrigger()
.forJob(saveUserJobDetail())
.withIdentity("saveUserJobTrigger", TRIGGER_GROUP_NAME)
.withSchedule(cronScheduleBuilder)
.build();
}
}
3. 具体的任务实现逻辑
package com.hejjon.job;
import org.quartz.JobExecutionContext;
import org.springframework.scheduling.quartz.QuartzJobBean;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SaveUserJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(">>>>>>>>>>>>>>>> 开始执行定时任务, 当前时间: " + df.format(new Date()));
}
}



