Quartz事物调度
来源:互联网 发布:指纹识别芯片 算法 编辑:程序博客网 时间:2024/05/29 10:15
Quartz是什么?
Quartz是一个用Java编写的任务调度框架。
任务调度是什么?
举例说明:比如我们需要在每个星期四下午三点时候发周报,我们需要一个系统在两点半的时候给我们一个发周报的提醒,这个提醒就是一次任务,每周星期四下午两点半的时候自动触发这个任务,这就可以理解为这个系统的一次任务调度。在比如我们的系统心跳数据包的发送,判断一个用户是否在操作等等。Quartz 提供给我们定时调度已定义好的任务的能力。
如果你了解quartz的调度计划cronExpression表达式的配置,你会感叹quartz的灵活与强大。
Quartz的简单使用
先下只介绍spring 和quartz的整合使用。
一个利用Quartz来进行任务调度的典型配置,Quartz的spring配置:
<bean id="testTask" class="com.alisoft.xx.TestTask" /> //要用到的一个类<bean id="xxJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="concurrent"> <value>false</value> </property> <property name="targetObject"> //目标类 <ref bean="testTask"/> </property> <property name="targetMethod"> //目标方法(注意,该方法必须没有参数) <value>execute</value> </property> </bean> <!-- SimpleTriggerBean可以用org.springframework.scheduling.quartz.CronTriggerBean代替 --> <bean id="xxTriggerBean" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail"> <ref bean="xxJobDetail"/> </property> <!--延迟 1 seconds 开始--><property name="startDelay"> <value>1000</value> </property> <!--重复6 seconds开始--> <property name="repeatInterval"> <value>60000</value> </property> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="xxTriggerBean"/> </list> </property> </bean>
其实quartz的使用主要有三个部分,一个调度器Scheduler,一个要被调度的任务JobDetail,一个触发器Trigger,对上面的配置做一说明,在图中从下到上:
1、 配置一个job,这个job就是我们要调度的任务类,
2、配置jobDetail,jobDetail需要加载job实现类,并且指定目标方法即完成任务需要执行的方法为execute,在这个方法里面定义我们要做的任务,execute方法需要我们在job类中实现。
3、配置trigger,用于触发我们定义的任务,在触发器的配置中,我们需要加载需要调度的任务jobDetail,当然还要配置好我们需要触发的时间,触发的时间配置在cronExperssion表达式中,这个表达式非常灵活与强大,举个例子:我们需要每个工作日早八点到晚八点之间,每半个小时触发一次任务,我们可以将表达式配置为:0 0/30 8-20 ? * MON-FRI。这个表达式的详细解释可以登录Hudson报表系统(链接:http://10.232.29.21:8080/hudson-report/),点击邮件信息维护里面的“邮件发送时间计划配置帮助”查看。
4、配置scheduler,只需要加载trigger即可,可以在list标签下配置多个trigger。注意,scheduler的配置中有个lazy- init=false的配置,这表明只要我们的spring一启动,quartz的scheduler也跟着启动,否则其值为true的话,会因为惰性加载的问题,导致quartz不起作用,此项默认值是false。
- Quartz事物调度
- Spring使用Quartz配置调度事物
- EAS后台事物调度时间间隔所用的QuartZ Cron表达式解析。
- Quartz调度
- Quartz调度
- quartz调度
- 【Quartz】Quartz任务调度入门
- Quartz任务调度
- J2EE 调度程序(Quartz)
- Quartz调度时好时坏解决方案
- 调度框架Quartz
- Quartz进行作业调度
- 使用Quartz调度器
- quartz 添加任务调度
- 使用Quartz调度器
- Quartz作业调度
- 任务调度 Quartz框架
- 作业调度之quartz
- iPhone上如何侦测到系统的语言设定
- Splunk
- Ensemble如何将外部数据源数据迁入cache数据库
- oracle 使用flashback(闪回)恢复误删除的数据 或 误删除的表
- Android访问第三方资源通用接口(自我整理)
- Quartz事物调度
- Android bootchart使用步骤
- Ubuntu下轻松建立你的内核驱动开发环境
- linux内核源码目录结构
- Turbo码 - 接近完美的编码
- POJ 2002 hash+枚举
- 用Eclipse+Cygwin+CDT+NDK来创建一个简单的Android JNI 项目
- 数据库索引的作用和优点缺点
- 关于resultset的小结