文档章节

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
2018/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可以设置timeout参数吗

现有项目利用spring的quartz的定时器来定时执行某项任务,但是该任务是利用了第三方插件获取别的系统的数据,经常出现由于对方问题造成连接中断,但是我这边没有任何反应,程序处于僵死状态,...

刘鹏14331
2012/03/13
1K
3
Spring整合quartz实现定时器

第一步:引入依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.1.0</version> </dependency> 注意:Spring3.1以下的版本必须使用qua......

嘴角轻扬30
01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
57分钟前
2
0
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
10
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
9
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部