定时调度集成Quartz
能够定时调用某种方法,实现定时推送的功能。
- Scheduler:任务调度器,所有的任务都是从这里开始。
- Trigger:触发器,定义任务执行的方式、间隔。
- JobDetail & Job : 定义任务具体执行的逻辑。
添加依赖pom.xml
<!-- Quartz -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
jobs/MyFirstJob.java
定义任务具体执行的逻辑。
public class MyFirstJob implements Job {
private Logger log = LoggerFactory.getLogger(MyFirstJob.class);
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//需要执行的方法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
log.info(sdf.format(new Date()) + "-->" + "Hello Spring Boot Quartz...");
}
}
jobs/QuartzConfig.java
@Configuration
public class QuartzConfig {
//对象方法构建对象存入beanFactory
//任务调度器,所有的任务都是从这里开始。
@Bean
public JobDetail jobDetail(){
return JobBuilder.newJob(MyFirstJob.class).storeDurably().build();
}
// 每5秒触发⼀次任务
//触发器,定义任务执行的方式、间隔。
@Bean
public Trigger trigger(){
return TriggerBuilder.newTrigger()
//设置任务的种类 与及名字
.withIdentity("trigger2", "group1")
//设置执行的属性 时间属性
.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ? *"))
.forJob(jobDetail())
.build();
}
}