文档章节

Spring 定时任务插件quartz

Lbj虞
 Lbj虞
发布于 2017/02/15 08:11
字数 440
阅读 13
收藏 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.任务信息初始化持久化到数据里面,可以对任务的执行进行监控

© 著作权归作者所有

共有 人打赏支持
上一篇: springmvc viewResolver
下一篇: log4j2的基本配置
Lbj虞
粉丝 5
博文 29
码字总数 20080
作品 0
南京
程序员
私信 提问
Spring Boot实践--定时任务两种(Schedule与Quartz整合)

Spring Boot实践--定时任务两种(Schedule与Quartz整合) 最近在项目中使用到定时任务,之前一直都是使用Quartz 来实现,最近看Spring 基础发现其实Spring 提供 Spring Schedule 可以帮助我们实...

spinachgit
02/11
0
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

没有更多内容

加载失败,请刷新页面

加载更多

POSIX正则

简介 因为之前对于POSIX类的正则表达式使用的比较少,也就没有上心去记忆,最近因为使用的比较多,就仔细的看了一下做了一个简单的总结。 表达式 \p{Lower} 小写字母字符:[a-z] \p{Upper} 大...

trayvon
46分钟前
1
0
soapui的安装使用

https://blog.csdn.net/weiqing723/article/details/78865734

暗中观察
52分钟前
0
0
ACID学习记录

ACID的C即一致性,打比方,多个线程并发执行转账业务:A转给B一块钱,无论成功与否(A+B)的总额是不会变的。事务执行前与执行后数据内在的逻辑始终是成立的。这里就是转账前与转账后两人存款的...

wmzsonic
今天
0
0
手写tomcat+servlet

写程序一定要有思路,思路很重要! 一、我们分两步第一步先实现手写tomcat,第二部写servlet 所用技术: 1、soket通信 IO流 2、http请求与相应 3、解析xml 4、java反射技术 导入所需要的jar...

jason_kiss
今天
1
0
Beetl模板的基础用法 【变量、循环、条件】---《Beetl视频课程》(2)

本期视频做了一个博客的首页列表; 内容简介:springboot 集成 beetlsql;使用for循环,使用if控制语句,使用虚拟属性,定义变量等等 一起学beetl目录:https://my.oschina.net/u/1590490?ta...

Gavin-King
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部