SpringBoot中使用Quartz设置定时任务的实例详解

 更新时间:2023年12月01日 09:50:06   作者:鲈鱼不会起名鸭  
Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于 Java 实现,本文小编给大家介绍了SpringBoot中如何使用Quartz设置定时任务,文中通过代码示例给大家讲解的非常详细,需要的朋友可以参考下

基础使用

Quartz 的核心类有以下三部分:

  • 任务 Job : 需要实现的任务类,实现 execute() 方法,执行后完成任务。
  • 触发器 Trigger : 包括 SimpleTrigger 和 CronTrigger
  • 调度器 Scheduler : 任务调度器,负责基于 Trigger触发器,来执行 Job任务。

添加依赖

<!-- 核心包 -->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.0</version>
</dependency>
<!-- 工具包 -->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.3.0</version>
</dependency>

demo

QuartzConfig类

这个类用来进行任务描述,进行定时执行并将对应的执行逻辑类进行绑定

import org.quartz.*;  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.Configuration;  
  
/**  
 * 定义任务描述和具体的执行时间  
 */  
@Configuration  
public class QuartzConfig {  
    @Bean    public JobDetail jobDetail() {  
        //指定任务描述具体的实现类  
        return JobBuilder.newJob(IDCardWarningJob.class)  
                // 指定任务的名称  
                .withIdentity("IDCardWarningJob")  
                // 任务描述  
                .withDescription("任务描述:身份预警更新表")  
                // 每次任务执行后进行存储  
                .storeDurably()  
                .build();  
    }  
  
    @Bean  
    public Trigger trigger() {  
        //创建触发器  
        return TriggerBuilder.newTrigger()  
                // 绑定工作任务  
                .forJob(jobDetail())  
//                .withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(1, 0))  // 设置每天凌晨1点触发一次任务  
                .withSchedule(CronScheduleBuilder.cronSchedule("0 0 1 * * ?"))  // 设置每天凌晨1点触发一次任务  
                .build();  
    }  
}

demoJob类

这个类负责定时任务的逻辑处理(execute方法中写代码逻辑)

import com.alibaba.druid.support.logging.Log;  
import com.alibaba.druid.support.logging.LogFactory;  
import com.iknight.cost.service.IdentityWarningService;  
import org.quartz.Job;  
import org.quartz.JobExecutionContext;  
import org.quartz.JobExecutionException;  
import org.springframework.beans.factory.annotation.Autowired;  
  
  
public class IDCardWarningJob implements Job {  
    private static final Log logger = LogFactory.getLog(IDCardWarningJob.class);  
    @Autowired  
    private IdentityWarningService service;  
    public void setClaimPostServiceImpl(IdentityWarningService service) {  
        this.service = service;  
    }  
  
    @Override  
    public void execute(JobExecutionContext context) throws JobExecutionException {  
        service.updateDate();  
    }  
}

关于cron表达式可以跳转这个连接->表达式生成器

以上就是SpringBoot中使用Quartz设置定时任务的实例详解的详细内容,更多关于SpringBoot Quartz定时任务的资料请关注脚本之家其它相关文章!

相关文章

  • Java中get/post的https请求忽略ssl证书认证浅析

    Java中get/post的https请求忽略ssl证书认证浅析

    因为Java在安装的时候,会默认导入某些根证书,所以有些网站不导入证书,也可以使用Java进行访问,这篇文章主要给大家介绍了关于Java中get/post的https请求忽略ssl证书认证的相关资料,需要的朋友可以参考下
    2024-01-01
  • SpringCloud feign微服务调用之间的异常处理方式

    SpringCloud feign微服务调用之间的异常处理方式

    这篇文章主要介绍了SpringCloud feign微服务调用之间的异常处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java集合中list的用法代码示例

    java集合中list的用法代码示例

    这篇文章主要介绍了java集合中list的用法代码示例,分享了相关代码,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • springboot加载命令行参数ApplicationArguments的实现

    springboot加载命令行参数ApplicationArguments的实现

    本文主要介绍了springboot加载命令行参数ApplicationArguments的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java使用I/O流读取文件内容的方法详解

    Java使用I/O流读取文件内容的方法详解

    这篇文章主要介绍了Java使用I/O流读取文件内容的方法,结合实例形式详细分析了java使用I/O流读取文件常见操作技巧,需要的朋友可以参考下
    2019-11-11
  • WebService教程详解(二)

    WebService教程详解(二)

    这篇文章主要介绍了WebService教程详解(二) 的相关资料,需要的朋友可以参考下
    2016-03-03
  • Java编程中避免equals方法的隐藏陷阱介绍

    Java编程中避免equals方法的隐藏陷阱介绍

    这篇文章主要介绍了Java编程中避免equals方法的隐藏陷阱介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot项目中rest接口定义与参数传递和接收方式

    SpringBoot项目中rest接口定义与参数传递和接收方式

    本文介绍了使用RestClient测试接口的两种方式:form-data和content-type,form-data适用于所有请求方式,但URL长度有限制,content-type只适用于POST/DELETE/PUT请求,处理application/json格式参数,对于参数较多的情况,建议使用JavaBean接收
    2026-04-04
  • Java实现下载文件的6种方式

    Java实现下载文件的6种方式

    本文主要介绍了Java实现下载文件的6种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • JavaEE线程安全定时器模式任务

    JavaEE线程安全定时器模式任务

    这篇文章主要介绍了JavaEE线程安全定时器模式任务,定时器模式像是一个闹钟定时,在一定时间之后被唤醒并执行某个之前设定好的任务,感兴趣的小伙伴可以参考一下
    2022-06-06

最新评论