Spring与Quartz整合

Quartz框架是一个轻量级的任务调度框架,它提供了许多内置的功能,包括:支持作业的调度、集群调度、持久化、任务持久化、任务依赖、优先级、并发控制、失败重试等。同时也支持自定义作业类型和触发器类型。与Spring整合步骤如下:

  1. 引入包
    <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.37</version>
    </dependency>
    <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.3</version>
    </dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>5.3.37</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.3.37</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.13</version>
    </dependency>
    <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-nop</artifactId><version>2.0.13</version><scope>test</scope>
    </dependency>

  2. 写一个类实现Quartz的job接口
     

    /**
    *Description:
    *author: ljd
    *@date 2024年7月3日 
    *@version 1.0 
    */
    package test.spring.model;import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;public class Myjob implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("quartz调度执行内容.................");}}

  3. 在Spring中配置
     

    <!--配置一个工作任务 --><bean id="myJob"class="org.springframework.scheduling.quartz.JobDetailFactoryBean"><property name="name" value="myQuartzjob"></property><property name="group" value="myGroup"></property><!-- jobClass为自己写的job工作类 --><property name="jobClass" value="test.spring.model.Myjob"></property><!-- 必须设置为true,如果为false,当没有活动的触发器与之关联时,在调度器中会删除该工作任务 --><property name="durability" value="true"></property><!--applicationContextJobDataKey为Spring配置文件 --><property name="applicationContextJobDataKey"value="applicationContext"></property></bean><!--配置一个处发器 --><bean id="trigger"class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="name" value="myTrigger"></property><property name="group" value="myGroup"></property><!--jobDetail为要触发的工作,设置多个值 为 jobDetaMap --><property name="jobDetail" ref="myJob"></property><!-- 设置执行时间 默认为7位数,从左到右,分别人 “秒 分 时 日 周 月 年” 年可省略,其中*表示任意数,? 表示忽略 --><!-- 如 : "0/3 * * * * ?" 表示第0秒开始,每三秒执行一次 --><property name="cronExpression" value="0/3 * * * * ?"></property></bean><!--配置调度器 --><bean id="scheduler"class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="trigger" /></list></property></bean>
    

  4. 写一个类测试
     

    /**
    *Description:
    *author: ljd
    *@date 2024年7月3日 
    *@version 1.0 
    */
    package testSpring;import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.scheduling.quartz.SchedulerFactoryBean;public class TestScheduller {public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");/* 从Spring容器中获取调度器,正常情况是Spring容初始化后,调度器就会自动启动 */SchedulerFactoryBean scheduler=(SchedulerFactoryBean) ac.getBean("scheduler");scheduler.start();}}

    测试结果:

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

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

相关文章

SQL跨数据库服务器查询和跨表批量插入的操作

MSSQL实现跨服务器查询数据库 EXEC sp_addlinkedserver server192.168.1.10, --链接服务器别名 srvproduct, providerSQLOLEDB, datasrc192.168.1.10 --要访问的的数据库所在的服务器的ip GO EXEC sp_addlinkedsrvlogin 192.168.1.10, --链接服务器别名…

scp命令快速上手用法

作用 scp命令可以实现linux和linux&#xff0c;linux和windows之间文件互传 操作 实验准备 windows系统 ip&#xff1a;192.168.172.1 linux系统A ip&#xff1a;192.168.172.181 linux系统B ip&#xff1a;192.168.172.181 实验1&#xff1a;linux系统A推送文件到linxu…

elasticsearch用curl查询

curl:-X :指定http的请求方式&#xff0c;有HEAD、GET、POST、PUT、DELETE-d :指定要传输的数据-H :指定http的请求头信息 curl -XPUT http://ip:port/索引名?pretty-- 创建索引 curl -XGET http://ip:port/_cat/indices?v --查看当前es的所有索引信息 curl -XGET http://ip:…

基于springboot+vue+uniapp的贵工程寝室快修小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

哈喽GPT-4o,程序员如何通过GPT-4o提高工作效率

目录 一、编写代码Prompt&#xff1a;请用Java语言编写一个二分查找的样例 二、修正代码错误、代码优化Prompt&#xff1a;我们上传一张华为OD算法题的题目描述&#xff0c;再给它我的Java解题代码&#xff0c;问问它有什么问题&#xff1f; 三、解读代码功能、代码翻译Prompt&…

在Windows环境下安装Python 3.11的步骤

在Windows环境下安装Python 3.11的步骤相对直接。下面是详细的安装教程&#xff1a; 第一步&#xff1a;下载Python 3.11安装程序 访问Python官方网站的下载页面&#xff1a;https://www.python.org/downloads/在页面中找到适用于Windows的Python 3.11版本&#xff0c;点击下…

Java中的匿名类

匿名类简介 匿名类&#xff08;Anonymous Classes&#xff09;是在 Java 中定义的一种没有名字的内部类。它们通常用来简化代码编写&#xff0c;尤其是在需要创建简短的类实现接口或继承类的场景中。匿名类可以在方法、构造方法、字段初始化时使用。 匿名类的特性 没有类名&a…

【面试题】MySQL(第一篇)

1. MySQL是什么&#xff1f; MySQL是一种开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它使用结构化查询语言&#xff08;SQL&#xff09;进行数据管理。MySQL具有高性能、可靠性、可扩展性和兼容性等特点&#xff0c;广泛应用于Web应用开发中。 2. …

数据分析入门指南Excel篇:各类Excel函数概览与详解(二)

在当今数字化时代&#xff0c;数据已成为推动业务决策和创新的关键因素。而表格结构数据&#xff0c;作为最常见的数据存储形式之一&#xff0c;广泛应用于财务、物流、电商等多个领域。本文将基于提供的材料文本&#xff0c;深入探讨表格数据的处理与分析&#xff0c;特别是通…

华为 eNSP 路由器 实现双wan出口 访问外网nat 策略路由配置

1 实验拓扑 2 路由器配置 #R1配置 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysn [Huawei]sysname R1 [R1]int GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0 [R1-GigabitEthernet0/0/0]qu [R1…

基于STM32设计的智能台灯(HC05蓝牙控制)179

基于STM32设计的智能台灯(HC05蓝牙控制)(179) 文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】整体构架1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要【5】项目背景1.4 开发…

详解Linux的shell脚本基础指令

一、shell简介 是Linux系统的用户界面&#xff0c;它提供用户与内核的一种交互方式。它接收用户输入的命令&#xff0c;并把它送入内核去执行&#xff0c;是一个命令解释器。 脚本&#xff1a;本质是一个文件&#xff0c;文件里面存放的是 特定格式的指令&#xff0c;系统可以…

如何选择快手矩阵源码:关键因素解析

在短视频行业迅速发展的今天&#xff0c;快手平台已成为众多内容创作者和企业的重要阵地。为了有效管理和运营多个快手账号&#xff0c;快手矩阵源码成为了一个关键工具。然而&#xff0c;市场上的快手矩阵源码种类繁多&#xff0c;选择一个合适的源码并非易事。本文将探讨选择…

【每日一练】python基础入门实例

""" 幼儿园加法练习题 题数不限 每满100分奖励10个棒棒糖 要求&#xff1a; 1.使用三目运算符与基础运算的对比 2.随机数字相加 3.调用函数 4.循环执行练习题 5.有计算分数 6.有时间停止休眠 """ #导入随机模块 import random #导入时间模块 imp…

聚观早报 | 蚁天鉴2.0发布;理想汽车推送无图NOA

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 7月8日消息 蚁天鉴2.0发布 理想汽车推送无图NOA 特斯拉推送FSD v12.4.3 iQOO Neo9s Pro配色公布 百川智能AI健康…

【知识专栏丨python数据采集数据分析实战】电商数据分析案例

今天这篇文章将给大家分享一个电商数据采集和数据分析的案例。 电商数据采集&#xff1a; https://www.heywhale.com/mw/project/604ae69d89c874001527ff16 下面我们先来简单了解一下数据。 01 数据信息 数据来源&#xff1a; https://www.kesci.com/mw/dataset/601e971ab23…

OpenCV对图片中的水果进行识别计算其面积长度等

本项目所用到的技术有&#xff1a; OpenCV Python的一些库&#xff1a;sys,openpyxl,numpy,PyQt5,PIL 本文可以做一些课程设计的项目 本文为作者原创&#xff0c;转载请注明出处&#xff0c;如果需要完整的代码&#xff0c;可以关注我私信 上面是用到的样例图片&#xff0c;一张…

黑马点评报错@user_script:17: user_script:17: attempt to compare nil with number

后面发现是需要预先写入缓存seckill:stock:11&#xff0c;其中11是优惠券id 我数据库里面是11 &#xff0c;这里redis里面也写了11之后就好使了

pip下载本地压缩包步骤

首先从官网上下载要安装的压缩包&#xff0c;如regex的安装包 下载到本地后&#xff0c;以上面的regex为例&#xff0c;执行pip install regex-2024.5.15.tar.gz --no-dependencies --no-build-isolation

markdown文件转pdf

步骤&#xff1a;md转html转pdf pom引入 <!--markdown 转pdf--><dependency><groupId>com.vladsch.flexmark</groupId><artifactId>flexmark-all</artifactId><version>0.64.8</version></dependency><dependency&g…