Springboot+quartz基本使用
-
引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> <version>2.6.7</version> </dependency>
-
添加执行任务的实体类
package com.zhao.quartz; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import java.util.Date; public class MyJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println(new Date()+"_____开始执行"); } }
-
开始调度代码
package com.zhao.quartz; import cn.hutool.core.date.DateUtil; import org.quartz.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; @Service public class TestJob { @Autowired private Scheduler scheduler; public void startJob(){ JobBuilder jobBuilder = JobBuilder.newJob(MyJob.class).withIdentity(MyJob.class.getName() + "_1", MyJob.class.getName()).usingJobData("jobDetail", "jobDetail"); JobDetail jobDetail = jobBuilder.build(); CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ? *").withMisfireHandlingInstructionDoNothing(); CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(MyJob.class.getName() + "_1", MyJob.class.getName()) .usingJobData("trigger", "trigger") .startAt(DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), 1))) .endAt(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), 1))) .withSchedule(cronScheduleBuilder) .build(); try { scheduler.scheduleJob(jobDetail,trigger); System.out.println("任务:"+jobDetail.getKey()+"__执行成功"); } catch (SchedulerException e) { e.printStackTrace(); } } }
-
时间调至当前23:59等待任务的执行,每隔5s