quartz---任务调度小试(多任务)
quartz---任务调度小试
背景
笔者眼下做的项目”jrkj“首页上的信息都是从redis中读取的,每小时更新一次存入redis中,那么问题来了怎么才干让系统每一个小时运行一次存入数据的方法呢?这个我用到的事quartz任务调度框架。
配置
我的项目用的是springMVC,spring+Ejb,EclipseLink,server用的是Jboss。因为项目中用到的Ejb所以在写配置文件applicationContext-common.xml的时候还是须要注意一些东西的,具体见配置文件。
<?xml version="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-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/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
<context:component-scanbase-package="com.tgb.itoo.jrkj.controller" />
<util:properties id="evn"
location="classpath:config/jboss-ejb-client.properties"></util:properties>
<!-- 启动触发器的配置開始 -->
<bean name="startQuertz" lazy-init="false"autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myJobTrigger" />
<refbean="autoJobTrigger" />
</list>
</property>
</bean>
<!-- 启动触发器的配置结束 -->
<!-- 调度的配置開始 -->
<!-- quartz-2.x的配置 -->
<bean id="myJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="myJobDetail" />
</property>
<property name="cronExpression">
<value>0 0 0/1 * * ?</value>
<!-- <value>0 0/1 * * *? </value> -->
</property>
</bean>
<!-- 调度的配置结束 -->
<!-- 调度的配置開始 -->
<!-- quartz-2.x的配置 -->
<bean id="autoJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="autoJobDetail" />
</property>
<property name="cronExpression">
<value>0 0 3 * * ?</value>
</property>
</bean>
<!-- 调度的配置结束 -->
<!-- job的配置開始 -->
<bean id="autoJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="homePageShowController" />
</property>
<property name="targetMethod">
<value>autoClassEndOrderLog</value>
</property>
</bean>
<!-- job的配置開始 -->
<bean id="myJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="homePageShowController" />
</property>
<property name="targetMethod">
<value>loadHomeData</value>
<!-- <value>run</value>-->
</property>
</bean> <jee:local-slsb id="homePageShowBean"
jndi-name="java:global/itoo-jrkj-homepageset-ear/itoo-jrkj-homepageset-core-0.0.1-SNAPSHOT/homePageShowBeanImpl!com.tgb.itoo.jrkj.service.HomePageShowBean"
business-interface="com.tgb.itoo.jrkj.service.HomePageShowBean"/>
<bean name="homePageShowController"class="com.tgb.itoo.jrkj.controller.HomePageShowController">
<property name="homePageShowBean"ref="homePageShowBean"></property>
</bean> </beans>
配置完毕一个之后发现事实上另一些其它的的地方须要配置。所以您会发现上面的配置文件里配置了两个计时器。以及两个任务,假设业务有须要的话。还能够配置很多其它。
Controller代码例如以下
@RequestMapping("/loadHomeData")
public voidloadHomeData() {
System.out.println("test");
List<FieldVo>listFieldVos = new ArrayList<FieldVo>();
……
}
别以为上面配置了,代码写了任务就完毕了,jboss还须要配置依赖的jar包。
首先在jboss的modules\org\springframework\spring\snowdrop路径下加入quartz2.2.1.jar(眼下我用的版本号),然后在该路径下的module.xml中resources节点下加入<resource-rootpath="quartz2.2.1jar"/>
<pre name="code" class="plain"><modulexmlns="urn:jboss:module:1.0"name="org.springframework.spring"slot="snowdrop">
<resources>
<resource-root path="spring-aop-4.0.9.RELEASE.jar"/>
……………
<resource-rootpath="spring-messaging-4.0.9.RELEASE.jar"/>
<resource-rootpath="spring-security-config-3.0.2.RELEASE.jar"/>
<resource-rootpath="commons-fileupload-1.3.1.jar"/>
<resource-rootpath="quartz2.2.1jar"/>
………..
结果
接下来看看我打印的信息
总之,这样下来在我的项目中是可以正常使用了,可是我想当运行任务调度的时候是不是可以单独的给它新起一个线程,这样会不会更好呢?这块因为这几天项目比較忙一直没弄,总之,看兴许更新的博客吧。
quartz---任务调度小试(多任务)的更多相关文章
- 从零开始学 Java - Spring 使用 Quartz 任务调度定时器
生活的味道 睁开眼看一看窗外的阳光,伸一个懒腰,拿起放在床一旁的水白开水,甜甜的味道,晃着尾巴东张西望的猫猫,在窗台上舞蹈.你向生活微笑,生活也向你微笑. 请你不要询问我的未来,这有些可笑.你问我你是 ...
- Quartz任务调度快速入门
Quartz任务调度快速入门 概述 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的 ...
- Quartz任务调度
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! Quartz任务调度 课程目标 : 了解Quartz框架 : 任务(Job) 触发器(Trig ...
- Quartz任务调度实践
最近在写一个任务调度程序,需要每隔几秒查询数据库,并取出数据做一些处理操作.使用到了Quartz任务调度框架. 基本概念 Quartz包含几个重要的对象,分别为任务(Job),触发器(Trigger) ...
- Quartz任务调度入门
Quartz任务调度入门 了解Quartz体系结构Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念 ...
- Spring研磨分析、Quartz任务调度、Hibernate深入浅出系列文章笔记汇总
Spring研磨分析.Quartz任务调度.Hibernate深入浅出系列文章笔记汇总 置顶2017年04月27日 10:46:45 阅读数:1213 这系列文章主要是对Spring.Quartz.H ...
- quartz任务调度初次使用记录
近期公司开发的数据交换系统嵌入了quartz任务调度功能,大概了解了任务调度的整个流程,项目中需要用到它来进行定时任务操作,对数据定时检查以及及时交换. Quartz是OpenSymphony开源组织 ...
- (转)Quartz任务调度(1)概念例析快速入门
http://blog.csdn.net/qwe6112071/article/details/50991563 Quartz框架需求引入 在现实开发中,我们常常会遇到需要系统在特定时刻完成特定任务的 ...
- Quartz任务调度 服务日志+log4net打印日志+制作windows服务
引言 现在许多的项目都需要定时的服务进行支撑,而我们经常用到的定时服务就是Quartz任务调度了.不过我们在使用定时Job进行获取的时候,有时候我们就需要记录一下自定义的日志,甚至我们还会对执行定时J ...
- Quartz任务调度:MisFire策略和源码分析
Quartz是为大家熟知的任务调度框架,先看看官网的介绍: ---------------------------------------------------------------------- ...
随机推荐
- CSS——(2)盒子模型与标准流
上篇博客<CSS--(1)基础>中简单介绍了CSS的概念和几种使用方法,现在主要是介绍其的核心内容. 盒子模型 为了理解盒子模型,我们可以先从生活中的盒子入手.盒子是用来放置物品的,内部除 ...
- Win10 Ubuntu18.04 编译安装 nignx
nginx 下载页 http://nginx.org/en/download.html wget http://nginx.org/download/nginx-1.14.0.tar.gz //安装依 ...
- JZOJ 5305 C先生
题意: 有一个n个点,m条边的图,没有重边.自环,且每一条边最多属于一个环路. 给出q组询问,每次询问u,v两点间的路径有多少种可能. 思路: 先看下方样例说明: 由样例说明可以得知,路径上每经过一个 ...
- POJ3345 Bribing FIPA 【背包类树形dp】
题目链接 POJ 题解 背包树形dp板题 就是读入有点无聊,浪费了很多青春 #include<iostream> #include<cstdio> #include<cm ...
- Tomcat学习笔记(十一)
StandardContext类 Context实例代表着一个具体的web应用程序,其中包含一个或者多个Wrapper实例,每个Wrapper实例代表着具体的servlet定义.但是,Context ...
- poj 1037 三维dp
A decorative fence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7221 Accepted: 272 ...
- svn installation
# yum install mod_dav_svn.x86_64 subversion-svn2cl.noarch=========================================== ...
- nginx tomcat负载均衡 使用redis session共享
环境准备 1.准备一台nginx服务器 ip192.168.1.133 端口81 安装过程: #首先安装依赖: yum -y install gcc-c++ yum -y install pcre p ...
- 行为型设计模式之备忘录模式(Memento)
结构 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 适用性 必须保存一个对象在某一个时刻的(部分)状态, 这样以后需要时 ...
- 读入输出优化_C++
当我们考试时遇到大量的读入或者输出时,这些代码会耗费许多运行程序的时间,导致TL 本来 log2n 的算法因为读入被卡成线性的就太不划算了,所以我们这里要采用读入输出优化 getchar 和 putc ...