Spring中Quartz的配置

Spring3中Quartz定时任务的配置与实践 Quartz是一个强大的开源作业调度库,允许开发人员在Java应用程序中插入复杂的定时任务。其核心组件包括作业(Job)、触发器(Trigger)和调度器(Scheduler)。作业定义了实际要执行的任务,而触发器负责指定作业的执行计划。调度器则是这两者之间协调工作的中心调度员。Quartz使用了工厂模式,提供了作业工厂和触发器工厂来创建相应的对象实例。一旦作业和触发器被定义并注册到调度器,调度器会根据触发器的配置,来调度作业的执行。 阅读详情
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:
首先我们来写一个被调度的类:
Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可。
1、Job
表示一个工作,要执行的具体内容。此接口中只有一个方法
void execute(JobExecutionContext context)
 
2、JobDetail
JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。
 
3、Trigger代表一个调度参数的配置,什么时候去调。
 
4、Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。

package com.kay.quartz;
public class QuartzJob
{

    
public void work()
    {
    System.out.println(
"Quartz的任务调度!!!");
    }
}
Spring的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>    
        
<!-- 要调用的工作类 -->
        
<bean id="quartzJob" class="com.kay.quartz.QuartzJob"></bean>
        
<!-- 定义调用对象和调用对象的方法 -->
        
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            
<!-- 调用的类 -->
            
<property name="targetObject">
                
<ref bean="quartzJob"/>
            
</property>
            
<!-- 调用类中的方法 -->
            
<property name="targetMethod">
                
<value>work</value>
            
</property>
        
</bean>
        
<!-- 定义触发时间 -->
        
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
            
<property name="jobDetail">
                
<ref bean="jobtask"/>
            
</property>
            
<!-- cron表达式 -->
            
<property name="cronExpression">
                
<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
            
</property>
        
</bean>
        
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
        
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            
<property name="triggers">
                
<list>
                    
<ref bean="doTime"/>
                
</list>
            
</property>
        
</bean>
    
</beans>
测试程序:
package com.kay.quartz;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainTest
{

    
/**
     * 
@param args
     
*/
    
public static void main(String[] args)
    {
        System.out.println(
"Test start.");
        ApplicationContext context 
= new ClassPathXmlApplicationContext("quartz-config.xml");
        
//如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
        
//context.getBean("startQuertz");
        System.out.print("Test end..");
    }
}
一个最简单入门实例
 
import org.quartz.*; 
import org.quartz.impl.StdSchedulerFactory; 

import java.util.Date; 

/** 
* quartz定时器测试 
* 
* @author leizhimin 2009-7-23 8:49:01 
*/
 
public class MyJob implements Job { 
        public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { 
                System.out.println(new Date() + ": doing something..."); 
        } 
} 

class Test { 
        public static void main(String[] args) { 
                //1、创建JobDetial对象 
                JobDetail jobDetail = new JobDetail(); 
                //设置工作项 
                jobDetail.setJobClass(MyJob.class); 
                jobDetail.setName("MyJob_1"); 
                jobDetail.setGroup("JobGroup_1"); 

                //2、创建Trigger对象 
                SimpleTrigger strigger = new SimpleTrigger(); 
                strigger.setName("Trigger_1"); 
                strigger.setGroup("Trigger_Group_1"); 
                strigger.setStartTime(new Date()); 
                //设置重复停止时间,并销毁该Trigger对象 
                java.util.Calendar c = java.util.Calendar.getInstance(); 
                c.setTimeInMillis(System.currentTimeMillis() + 1000 * 1L); 
                strigger.setEndTime(c.getTime()); 
                strigger.setFireInstanceId("Trigger_1_id_001"); 
                //设置重复间隔时间 
                strigger.setRepeatInterval(1000 * 1L); 
                //设置重复执行次数 
                strigger.setRepeatCount(3); 

                //3、创建Scheduler对象,并配置JobDetail和Trigger对象 
                SchedulerFactory sf = new StdSchedulerFactory(); 
                Scheduler scheduler = null; 
                try { 
                        scheduler = sf.getScheduler(); 
                        scheduler.scheduleJob(jobDetail, strigger); 
                        //4、并执行启动、关闭等操作 
                        scheduler.start(); 

                } catch (SchedulerException e) { 
                        e.printStackTrace(); 
                } 
//                try { 
//                        //关闭调度器 
//                        scheduler.shutdown(true); 
//                } catch (SchedulerException e) { 
//                        e.printStackTrace(); 
//                } 
        } 
}


quartz 随tomcat启动执行一次 tomcat启动时立即调用quartz执行一次 立即下载

相关推荐

基于ROS的机械臂手眼标定-Aruco使用与相机标定

基于ROS的机械臂手眼标定-Aruco使用与相机标定 折腾了一段时间的机械臂的手眼标定,相关资料挺多的,但使用起来都比较复杂,新手一般比较难搞懂。于是想做一个比较简单易懂易用的手眼标定程序。 程序都是Copy的开源代码,所以也开源出来: 开源地址:https://gitee.com/ohhuo/handeye-calib 作为手眼标定中的重要一环,相机中标定板位姿关系获取直接影响标定精度,我们使用aruco这个开源程序来实现坐标的获取。 #mermaid-svg-WkFpFkV4QqzXMvJ4 .labe

生活不止眼前的苟且 1万+

SpringBoot - 集成Quartz框架之常用配置(二)

在Quartz发布的JAR包的org.quartz包下,包含了一个命名为quartz.properties的配置文件并提供了默认属性,如果需要调整默认配置,则可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认值。如果使用yml格式的配置,由于配置文件加载优先级的原因会导致quartz.properties里面的配置失效。

记录并分享 5880

瑞芯微rk3568移植openbmc(一)----关于ob移植的优缺点

基于rock3a的单板,CPU为瑞芯微rk3568的环境,移植了openbmc

feixiang3839的专栏 5537

SpringBoot - 集成Quartz框架之常用配置

SpringBoot - 集成Quartz框架之常用配置

weixin_45817985的博客 7265

知识图谱-KGE-语义匹配-双线性模型-2018:SimplE

【paper】 SimplE Embedding for Link Prediction in Knowledge Graphs 【简介】 本文是加拿大英属哥伦比亚大学的两位学者发表在 NIPS 2018 上的工作,文章提出了 SimplE(Simple Embedding)。这篇和前面一篇差不多,也是对 1927 年的 CP 进行改进(简化),传统CP为实体分配的两个向量是独立训练的,SimplE利用关系的逆在三元组打分函数中加上了一个对称项,使得每个实体的两个向量依赖学习,并且 SimplE 的复杂度随

u013250861的博客 958

GEE:本地影像上传到GEE的Assets中,并输入机器学习算法中作为特征变量

当我们在 Google Earth Engine(GEE)中应用机器学习算法时,会输入一些影像作为特征变量数据,进一步根据这些特征影像去推理未知区域的数据。但是 GEE 平台上计算特征变量的 API 函数并不是非常全面,我们希望获得更多的特征用于分类。这个时候,我们可以将本地计算的特征影像上传到 GEE 中进行后续处理。本文记录了从本地上传特征数据到 GEE 的 Assets 中的教程,用于后续在 GEE 中分类或者回归使用。本文也可作为《》一文的补充。

养乐多的博客 1730

Spring如何实现Quartz的自动配置

如果想在应用中使用Quartz任务调度功能,可以通过Spring Boot实现Quartz的自动配置。以下介绍如何开启Quartz自动配置,以及Quartz自动配置的实现过程。

ttyy1112的专栏 3134

YOLOv8【第十章:多任务扩展深度篇·第18节】不规则工业缺陷分割——针对划痕、裂纹的 Seg 模型调优!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 3982

【详解】Springquartz的配置方式

Spring Quartz 是一个任务调度框架,它允许我们定期执行特定的任务。Spring 框架对 Quartz 进行了集成,使得在 Spring 应用中使用 Quartz 变得更加容易。在 Spring 中,我们可以通过多种方式来配置 Quartz,包括使用 ​​ 注解、XML 配置和 Java 配置。本文将介绍如何在 Spring 中使用这三种方式来配置 Quartz。

牛肉胡辣汤 1929

15、z/OS 优化配置与迁移实践

本文详细探讨了z/OS环境的优化配置与迁移实践,涵盖DASD存储库管理、用户目录更新、环境更新意义以及不同场景下的迁移案例。通过单笔记本系统和服务器级机器的实例,展示了迁移流程和关键要点,包括DASD文件创建、设备映射更新、系统重启初始化以及数据备份等步骤。文章还总结了迁移过程中的注意事项,并展望了未来z/OS优化的发展趋势,为z/OS系统的稳定运行和高效管理提供了实用指导。

zzz56的博客 129

7、布尔网络的基础定义

本文介绍了布尔网络的基础定义及其在系统生物学中的应用。布尔网络是一种描述复杂系统动态行为的数学模型,由布尔变量和布尔函数组成,能够模拟生物系统中基因调控、信号传导和细胞代谢等过程。文章详细阐述了布尔网络的基本结构、动力学特征(如状态转移图和吸引子),以及其在生物建模中的重要价值,并探讨了优化和简化技术(如Backward Boolean Equivalence)如何提升其计算效率。

yhn45678901的博客 263

spring Quartz配置

Quartz     Quartz是一个完全由java编写的开源作业调度框架.     Quartz最主要的功能就是调度器(完成定时任务),可以与javaEE或者javaSE应用程序相结合也可以单独使用。     Quartz能借助关系数据库和JDBC作业存储支持集群,负载均衡。   需要的jar包: spring.jar quartz-1.6.1.jar commons-logg...

xsxjb的专栏 432

Vue3 - 完美解决 vite 打包后在本地浏览器直接打开运行,build 打包后双击 index.html 直接以 file 协议运行网站(资源、接口等正常访问,和部署到服务器运行效果一样)

vue3vite怎么支持file协议本地打开,vite打包文件如何支持files协议,支持双击即可打开网页,vue3vite打包后双击本地运行,vue3vite打包后怎么直接在浏览器双击打开访问,vite打包后显示空白,vite如何支持本地file协议打开,vue3vite打包后如何本地查看网站,vue3vite项目打包后本地启动白屏怎么办,vite打包后的代码如何在本地运行,vite+vue3打包在fIle本地index.html打开项目,打包后如何直接打开index.html文件,vue3

🏆 前端领域优质创作者 1万+

Spring Quartz 配置

Spring 默认设置threadCount为10, 如果需要扩大线程数,需要配置quartzProperties <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

Michael's Blog 1696

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

QuartZ在spring中的注解配置

首先是jar包的配置: maven依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.6</version> </dependency> <!-- Quartz uses SLF4J, so we need an actual logger --

qq_29868309的博客 427

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Spring中Quartz的配置详解

Spring中Quartz的配置详解 文章摘自:http://www.cnblogs.com/kay/archive/2007/11/02/947372.html Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz: 首先我们来写一个被调度的类: package com.kay.quartz; publ

依然谈笑春风 880

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

spring中配置quartz定时器

spring中配置quartz定时器 jar包说明 spring3.0+quartz1.0版本,这里如果使用quartz2.0的话,spring的jar包要3.2版本以上 下载地址:http://download.csdn.net/detail/dzy21/9582333 实体类的方法 定时器就来调用这个方法 package com.cloud.impl;

午-夜 4710

【Quartz】Quartz存储与持久化-基于Spring的配置

在上文【Quartz】Quartz存储与持久化-基于quartz.properties的配置 ,是通过配置quartz.properties文件的方式来实现持久化的。本文将通过Spring配置的方式来实现存储与持久化。

Evankaka的专栏 1万+

java quartz 配置_Spring + Quartz配置实例

参考文章【http://www.cnblogs.com/kay/archive/2007/11/02/947372.html】【http://www.diybl.com/course/3_program/java/javajs/2008530/118164.html】各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30...

weixin_39689347的博客 234

Spring中Quartz的配置 quartz-config.xml

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz: 首先我们来写一个被调度的类: package com.kay.quartz; public class QuartzJob {     public void work()     {     System.out.println("Quart

kissing7的专栏 2497

Quartz 在 Spring 中如何动态配置时间

原文博客地址: http://sundoctor.iteye.com/blog/399980 Quartz 在 Spring 中如何动态配置时间 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度。 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间,非常easy。比如:每天凌晨几点定时运行一个程序,这只要在工程中的spring配置文件中配置好spring整合quartz的几个属性就好...

q812979729的博客 248

spring quartz 简单配置

pom 配置; xml 配置;

AntHub的博客 265

quartz java spring_在Java的Spring框架中配置Quartz的教程

Spring中配置Quartz的过程:1.导入JAR包quartz需要的JAR包,已经包含在spring中,位置在spring解压后目录的 \lib\quartz 下的quartz-all-1.6.1.jar,将其拷贝到工程 的 WEB-INF/lib 下就行了。2.配置web.xml,让spring启动时加载quartz的配置文件xmlns:xsi="http://www.w3.org/2001...

weixin_39618339的博客 372
上一篇: 访问量和在线人数统计
下一篇: java.util.ResourceBundle 和java.util.properties 读取配置文件区别
叶瑾g
博客等级 码龄12年 3粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值