文档章节

Spring 定时任务插件quartz

Lbj虞
 Lbj虞
发布于 2017/02/15 08:11
字数 440
阅读 11
收藏 0

quartz,是java编写的可以和Spring无缝对接的定时任务插件

quartz的核心概念 scheduler 任务调度器 tirgger 触发器用于调度任务的时间规则 , job 任务,被调度的任务,我通常跑的业务逻辑代码

一个任务调度器的执行必须要包含 tirgger 触发器和job 任务

1.使用注解的方式 项目中使用quartz可以通过配置quartz.xml方式,采用@Scheduled注解的方式

@Scheduled 作用在方法上,方法不能有返回值,方法所在的类必须是SpringBean 可以在类上添加@Componet注解

quartz.xml 中配置

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">

<!--开启这个配置,spring才能识别@Scheduled注解-->  
 <task:annotation-driven/>  
 <!-- 自动扫描注解的bean -->  
<context:component-scan base-package="com.yu"/>  

</beans> ![效果如下](https://static.oschina.net/uploads/img/201702/15074521_BKKf.png "在这里输入图片标题")

2.使用自己手动配置xml的方式,写好一个定时任务,往配置文件,添加任务信息

<?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.yu.quartz.QuartzTest"></bean>

 <!-- 定义调用对象和调用对象的方法 -->  
<bean id="jobtask"  
    class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
    <!-- 调用的类 -->  
    <property name="targetObject">  
        <ref bean="quartzJob" />  
    </property>  
    <!-- 调用类中的方法 -->  
    <property name="targetMethod">  
        <value>qTest</value>  
    </property>  
    <!-- 是否并发执行-->   
      <property name="concurrent" value="false"/>
</bean>  


  <!-- 定义触发时间 -->  
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
    <property name="jobDetail" ref="jobtask"></property>  
    <!-- cron表达式 -->  
    <property name="cronExpression">  
        <value>0/5 * * * * ?</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>

3.任务信息初始化持久化到数据里面,可以对任务的执行进行监控

© 著作权归作者所有

共有 人打赏支持
Lbj虞
粉丝 4
博文 29
码字总数 20080
作品 0
南京
程序员
实现Spring中的任务调度及异步执行

首先要端正一下本人的态度,开发了很长时间的Java Web项目,寄托于Spring MVC的架构,多数时间都是在处理业务逻辑问题,所以我个人单纯地认为Web开发,多线程的应用场景应该不多,能不用尽量...

chace0120
2014/08/01
0
1
Quartz与Spring的整合使用——创建JobDetail的方式及Trigger

之前说到过Quartz的基本使用(猛戳这里看文章),在实际使用中,我们通常会将定时任务交由spring容器来管理,所以今天我们来说说Quartz与spring的整合。 咱们还是按照Quartz的三大元素的顺序...

哲别0
2017/10/25
0
0
spring quartz 执行简单的定时任务

spring 定时执行任务 实现定时任务方式有两种 1、 Spring 的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,需要实现定时任务的方法只是一个普通方法。这个最...

NotFoundException
2013/03/20
0
0
Spring整合Quartz(JobDetailBean方式)

一、Spring创建JobDetail的两种方式 定时任务两种方式,Spring很好的封装使用Quartz的细节,第一种方式是利用SPring封装的Quartz类进行特定方法的实现,第二种是通过透明的使用Quartz达到定时...

Leons
2015/08/04
0
0
Spring定时任务的几种实现

Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,...

如月王子
2014/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
1
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
7
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
3
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部