通过Timer和Spring的scheduler实现定时任务可能会出现一旦定时任务中断后续的定时任务无法正常执行的问题,Quartz能够很好的解决这一问题。
项目使用Maven管理,因此在使用之前需要在pom文件中添加依赖,如下:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.0.6.RELEASE</version>
</dependency>
不要忘记spring-context-support。
紧接着需要添加Quartz配置类,我把代码粘贴了下来,如下:
其中需要import的部分内容:
import org.quartz.JobDetail;
import org.quartz.Trigger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;
-----------------------------------------------下边是配置类的实现-------------------------------------------------------
@Configuration
public class QuartzConfig<CornTriggerFactoryBean> {
//指定了触发规则
@Bean(name = "firstTrigger")
public CornTriggerFactoryBean uploadTaskTrigger(JobDetail firstJobDetail){

本文介绍了如何在SpringBoot项目中使用Quartz解决定时任务中断问题。通过添加Quartz和Spring-context-support依赖,配置QuartzConfig类,创建多个触发规则并设置定时任务执行间隔,实现了两个定时任务的并发与顺序执行。UploadTask和SubmitFailedDataTask作为具体的任务实现,通过SpringUtil工具类注入并调用相应方法。最后,启动类需添加@EnableScheduling注解以启用定时任务调度。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



