Springboot 整合 Quartz框架做定时任务

在Spring Boot中整合Quartz,可以实现定时任务调度的功能

  1、首先,在pom.xml文件中添加Quartz和Spring Boot Starter Quartz的依赖:

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

   2、创建一个定时任务类,实现Job接口,并重写execute()方法,在该方法中编写具体的定时任务逻辑。这里以打印当前时间为例:

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.time.LocalDateTime;public class MyJob implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {// 在这里编写定时任务的逻辑System.out.println("Current time: " + LocalDateTime.now());}
}

   3、创建一个Quartz配置类,配置JobDetail和Trigger。这里以每隔5秒执行一次任务为例:

import org.quartz.JobBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;@Configuration
public class QuartzConfig {// 配置JobDetail@Beanpublic JobDetailFactoryBean jobDetail() {JobDetailFactoryBean factoryBean = new JobDetailFactoryBean();factoryBean.setJobClass(MyJob.class); // 设置Job类return factoryBean;}// 配置Trigger@Beanpublic SimpleTriggerFactoryBean trigger(JobDetailFactoryBean jobDetail) {SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean();factoryBean.setJobDetail(jobDetail.getObject()); // 设置JobDetailfactoryBean.setRepeatInterval(5000); // 设置执行间隔,单位毫秒factoryBean.setRepeatCount(SimpleTriggerFactoryBean.REPEAT_INDEFINITELY); // 设置重复次数,这里设置为无限次return factoryBean;}
}

4、在Spring Boot的启动类上添加@EnableScheduling注解,启用定时任务功能:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication
@EnableScheduling
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

现在,当应用启动后,定时任务就会按照配置执行。在这个例子中,会每隔5秒执行一次MyJob中定义的任务。

本文只是教大家简单使用,如果需要Quartz定时任务做管理任务,可以直接复用若依框架的Quartz模块,他们这个做的挺好的

地址:RuoYi: 🎉 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/645202.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入Doris实时数仓:导入本地数据

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! < 免责声明 > 避免对文章进行过度解读&#xff0c;因为每个人的知识结构和认知背景不大同&#xff0c;没有一种通用的解决方…

XxlJob外网访问

Xxl-Job使用外网访问 服务注册中心配置 ### web server.port8088 server.servlet.context-path/xxl-job-admin### actuator management.server.base-path/actuator management.health.mail.enabledfalse### resources spring.mvc.servlet.load-on-startup0 spring.mvc.static…

Matlab 使用subplot绘制多个子图,一元拟合

实现效果&#xff1a; clc; clear;filename sri.xlsx; % 确认文件路径data readtable(filename); datavalue data{:,2:end}; datavalue datavalue;fig figure(Position, [0, 0, 1500, 900]); indexString ["(a)","(b)","(c)","(d)&qu…

vue+springboot实验个人信息,修改密码,忘记密码功能实现

前端部分 新增Person&#xff08;个人页面&#xff09;&#xff0c;Password&#xff08;修改密码页面&#xff09;&#xff0c;还需要对Manager&#xff0c;login页面进行修改 router文件夹下的index.js&#xff1a; import Vue from vue import VueRouter from vue-router i…

深度学习算法简介(一)

目录 ⛳️推荐 前言 1、深度神经网络&#xff08;DNN&#xff09; 2、卷积神经网络&#xff08;CNN&#xff09; 3、残差网络&#xff08;ResNet&#xff09; 4、LSTM&#xff08;长短时记忆网络&#xff09; 5、Word2Vec 6、Transformer 7、生成对抗网络&#xff08;…

JVM(java虚拟机 详解三个主要的话题:1.JVM 中的内存区域划分2.JVM 的类加载机制3.JVM 中的垃圾回收算法)

jdk java开发工具包 jre java运行时环境 jvm java虚拟机 JDK、JRE、JVM之间的关系&#xff1f; JDK(Java Development Kit):Java开发工具包&#xff0c;提供给Java程序员使用&#xff0c;包含了JRE&#xff0c;同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。…

Day14-Java进阶-字符缓冲流转换流序列化流打印流Properties 集合

1. 字符缓冲流 1.1 字符缓冲流构造方法 package com.itheima.buffered;import java.io.*;public class BufferedStreamDemo1 {/*字符缓冲流的基本使用注意: 缓冲流本身不具备读写功能, 只是对普通的流对象做包装构造方法:BufferedReader(Reader reader)BufferedWriter(Writer …

【IC设计】奇数分频与偶数分频 电路设计(含讲解、RTL代码、Testbench代码)

文章目录 原理分析实现和仿真偶数分频的电路RTL代码偶数分频的电路Testbench代码偶数分频的电路仿真波形占空比为50%的三分频电路RTL代码占空比为50%的三分频电路Testbench代码占空比为50%的三分频电路仿真波形 参考资料 原理分析 分频电路是将给定clk时钟信号频率降低为div_c…

内容平台加码旅游:谁是下一个网红城市

“姐妹们&#xff0c;你们五一啥安排&#xff1f;”早在3月中旬&#xff0c;小威就在询问两个好朋友的行程&#xff0c;“不早早问&#xff0c;怕约不上你们。” 去年以来&#xff0c;国人的旅游需求快速复苏&#xff0c;像小威的朋友一样&#xff0c;之前爱玩的、不爱玩的似乎…

3月8日是星期六

突然有查询特殊条件日期的需求。 <html> <title>3月8日是星期六</title> <center> <h1 id"h1"></h1> <div id"div"></div> </center> <script> var weekday [星期日, 星期一, 星期二, 星期…

pyTorch框架部署实践

相关代码链接见文末 1.所需基本环境配置 首先&#xff0c;我们需要一个预先训练好的模型以及相应的配置。接下来&#xff0c;为了实际应用这个模型&#xff0c;我们必须搭建一个功能强大的服务器。这台服务器的核心任务是加载我们的模型&#xff0c;并能够接收用户上传的图片。…

线程池嵌套导致的死锁问题

1、背景 有一个报告功能&#xff0c;报告需要生成1个word&#xff0c;6个excel附件&#xff0c;总共7个文件&#xff0c;需要记录报告生成进度&#xff0c;进度字段jd初始化是0&#xff0c;每个文件生成成功进度加1&#xff0c;生成失败就把生成状态置为失败。 更新进度语句&…