Spring Boot整合Quartz框架

news/2024/9/23 18:52:11/

说明:Quartz是一个定时器框架,可以实现定时任务,本文介绍如何在Spring Boot项目中整合Quartz框架,Quartz介绍参看下面这篇文章:

  • 【Quartz】Quartz定时任务框架

创建Demo

首先,创建一个Spring Boot项目,pom文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/></parent><groupId>com.hezy</groupId><artifactId>quartz_demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>

引入quartz

在pom文件中,添加下面依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

引入依赖后就可以使用了,Spring Boot向来很方便。首先,创建一个定时任务,如下:

java">import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;public class SampleJob implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {// 你的业务逻辑System.out.println(System.currentTimeMillis() / 1000 + "===============定时任务开始执行了……");}
}

然后,创建定时任务的配置类,配置类配置定时任务的周期等信息,如下:

java">import com.hezy.job.SampleJob;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import static org.quartz.SimpleScheduleBuilder.simpleSchedule;@Configuration
public class QuartzConfig {/*** 定义JobDetail,关联具体的Job*/@Beanpublic JobDetail sampleJobDetail() {return JobBuilder.newJob(SampleJob.class).withIdentity("sampleJob").storeDurably().build();}/*** 关联Trigger* 定时任务,每隔10秒执行一次*/@Beanpublic Trigger sampleJobTrigger() {return TriggerBuilder.newTrigger().forJob(sampleJobDetail()).withIdentity("sampleTrigger").withSchedule(simpleSchedule().repeatForever().withIntervalInSeconds(10)).build();}
}

执行,查看效果,如下:

在这里插入图片描述

可以看到,项目刚启动就立即执行了一次,往后每隔十秒执行一次。我想是否项目一启动就执行,应该有相关的配置可以设置的。

总结

本文介绍了如何在Spring Boot整合Quartz框架


http://www.ppmy.cn/news/1512303.html

相关文章

open Euler22.03系统安装宝塔面板

环境&#xff1a;华为云open Euler22.03操作系统 配置&#xff1a;2核4G 1、安装宝塔面板。 登录弹性云服务器。 执行以下命令&#xff0c;下载并安装宝塔面板。 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh &&…

Linux date命令

概述 date 命令用于显示或设置系统的时间与日期&#xff0c;语法格式为&#xff1a;“date [指定的格式]”。用户只需在强大的 date 命令后输入以“”号开头的参数&#xff0c;即可按照指定格式来输出系统的时间或日期。 [rootlocalroot ~]# uname -a #当前系统 Linux…

Qt五大核心特性之信号与槽

前言 Qt 引入信号与槽&#xff08;Signal & Slot&#xff09;机制的主要原因是为了提供一种灵活、松耦合的方式&#xff0c;使对象之间能够进行安全、方便的通信&#xff0c;尤其在事件驱动的编程环境中&#xff08;如 GUI 应用&#xff09;特别有效。 松耦合&#xff1a…

spring boot(学习笔记第十八课)

spring boot(学习笔记第十八课) Spring boot的定时任务和Quartz 学习内容&#xff1a; Spring boot的定时任务Spring boot的Quartz 1. Spring boot的定时任务 定义定时任务 加入必要的依赖 <dependency><groupId>org.springframework.boot</groupId&g…

去中心化的新时代:Web3技术的全球影响

随着技术的不断演进&#xff0c;Web3正引领互联网的去中心化新时代。相较于传统的Web1和Web2&#xff0c;Web3通过去中心化、区块链和智能合约等技术&#xff0c;正在重塑网络的运作方式。这一变革不仅提升了网络的安全性和透明度&#xff0c;也对全球经济、社会和文化产生了深…

Linux多进程

进程的概述 进程是计算机科学中的一个基本概念&#xff0c;它指的是在操作系统中正在执行的程序的实例 在Linux操作系统中&#xff0c;进程是程序执行的实体&#xff0c;是资源分配的基本单位 在在Ubuntu中&#xff0c;通过使用ps命令可以查看当前的进程列表 ps aux 进程与…

CentOS升级内核

1. 内核 rpm 包获取 首先&#xff0c;访问阿里云开源镜像仓库下的 CentOS 7 内核目录&#xff0c;下载 5.4 版本的最新小版本内核&#xff0c;ELRepo 只会保留大版本内核最新的两个小版本&#xff0c;例如下载当前最新的 5.4.278 版本&#xff0c;普通升级通常只需要下载如下 …

Maven-03.idea集成-配置及创建maven项目

一.配置Maven 写在前面&#xff1a;特别注意idea版本与Maven版本以及jdk版本与Maven版本的匹配问题。一定要下载和当前idea版本以及jdk版本匹配的maven版本&#xff0c;否则会出问题。具体匹配结果上网查询&#xff01;此处采用idea2023.2.3&#xff0c;jdk17&#xff0c;mave…