quertz 使用小例
最近工作中用了个任务调度,学的不好,就把它记下来,为了以后参考
一般的 quartz都允许有一个名为quartz.properties的配置文件,通过它可以修改quartz框架运行时的环境:

Quartz提供两种基本作业存储类型。
   
    第一种类型叫做RAMJobStore,它利用通常的内存来持久化调度程序信息。这种作业存储类型最容易配置、构造和运行。对许多应用来说,这种作业存储 已经足够了。然而,因为调度程序信息是存储在被分配给JVM的内存里面,所以,当应用程序停止运行时,所有调度信息将被丢失。
   
    第二种类型称为JDBC作业存储。Quartz提供两种不同的实现,但两种实现一般都需要JDBC驱动程序和后台数据库来持久化调度程序信息。这两种类型 的不同在于你是否想要控制数据库事务或这释放控制给应用服务器例如BEA's WebLogic或Jboss。(这类似于J2EE领域中,Bean管理的事务和和容器管理事务之间的区别)这两种JDBC作业存储是:
· JobStoreTX:当你想要控制事务或工作在非应用服务器环境中是使用 (注:自己控制事务)。
· JobStoreCMT:当你工作在应用服务器环境中和想要容器控制事务时使用 (web服务器控制事务)。
2.quartz里的作业
作业是一个执行任务的java类,当quartz调用某个java任务执行时,实际就是执行该任务对象的execute()方法。定义作业类,要实现Job接口。
示例代码:

3、关于触发器
Quartz中的触发器用来告诉调度程序作业什么时候触发。框架提供了一把触发器类型,但两个最常用的是SimpleTrigger和CronTrigger。SimpleTrigger为需要简单打火调度而设计。
典型地,如果你需要在给定的时间和重复次数或者两次打火之间等待的秒数打火一个作业,那么SimpleTrigger适合你。
     
      另一方面,如果你有许多复杂的作业调度,那么或许需要CronTrigger。
    
      CronTrigger很强大,使用复杂的时间判断来使用,效果很好。
4.关于调度器
调度器用于将任务与触发器关联起来,一个任务可以关联多个触发器,一个触发器也可以用于控制多个任务。
quartz的调度器由Scheduler接口体现。有如下方法:、
a.void addJob(JobDetail jobDetail,boolean replace): 将给定的JobDetail实例添加到高度器里。
b.Date schduleJob(JobDetail jobDetail,Trigger trigger):将指定的JobDetail实例与给定的trigger关联起来,即使用该trigger来控制该任务。
c.Date scheduleJob(Trigger trigger): 添加触发器trigger来调度作业。
下面来定义一个主程序来调度前面所定义的任务,代码如下:

这样运行这个程序就可以调度前面的作业了。
=========================================
在spring中使用quartz
创建quartz的作业bean 有以下两个方法:
1.利用JobDetailBean 包装QuartzJobBean子类的实例
2.利用MethodInvokingJobDetailFactoryBean工厂Bean包装普通java对象。
采用第一种方法实例如下:

spring 配置如下:


采用第二种方法需要指定以下两个属性:
targetObject:指定包含任务执行体的bean实例
targetMethod:指定将指定bean 实例的该方法包装成任务执行体。
示例代码如下:

spring 配置如下:

quertz 使用小例的更多相关文章
- linux 命令小例
		xargs示例: ls |xargs -i mv {} /opt find示例: find -mtime +n -name “*.avi” -type f -exec rm {} \; find - ... 
- Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例
		Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ... 
- 使用libcurl下载文件小例
		libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ... 
- webpack  --  多页面简单小例
		有时单页面并不能满足我们的业务需求,就需要去构建多页面应用,以下为简单小例: entry:{ index:'./src/module/index/index.js', student:'./src/m ... 
- [libpng]CMake+VS2015下编译libpng,及使用小例
		编译前的工作 在编译libpng前,需要把zlib编译好,并加载到编译环境里. CMake + VS2015 下编译zlib,及使用小例 下载与解压 libpng的官网是 http://www.lib ... 
- HTML5基础小结(二)——标签小例
		watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1amlhaGFuNjI5NjI5/font/5a6L5L2T/fontsize/400/fill/I0 ... 
- js入门学习~ 运动应用小例
		要实现的效果如下: 鼠标移入各个小方块,实现对应的效果(变宽,变高,移入透明,移出恢复)~~ (且各运动相互之前不干扰) 主要是练习多个物体的运动框架~~ --------------------- ... 
- js中的冒泡排序以及实现一个数组中得最到最大的数字小例
		这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单. 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: ... 
- linux之C编程实战小例
		人生匆匆一趟,打不打酱油?怎么打?怎么打"质量好点的酱油"?由你决定.打酱油是一种态度,更是一种生活! 哈哈,事不关己不开口,专心一意打酱油! 请记住下面些许话: 不要一味的说别人 ... 
随机推荐
- Java时间类型转换
			String转Long Long long=new SimpleDateFormat("yyyyMMddHHmmss").parse(String).getTime(); Long ... 
- 【总结】.Net面试题集锦(一)
			一.背景 最近一直在准备面试,收到的面试邀请邮件里还有面试题,真是要当面霸的节奏,不过看看也好,一方面能够锻炼锻炼生锈的脑子,查缺补漏一下,另一方面,万一靠这几个面试题拿到offer呢,哈哈.开个玩笑 ... 
- 做web开发和测试,修改hosts指定某个域名访问某个特定的IP后,如何使hosts立即生效的方法
			本文转自SUN'S BLOG,原文地址:http://whosmall.com/post/143 hosts的配置方法: 在windows系统中,找到C:\windows\system32\drive ... 
- 关于TableView上有一段留白的解决方法
			当cell的类型是plaint类型时 直接设置self.automaticallyAdjustsScrollViewInsets=NO; 还有要注意检查你自己设置的frame是否正确 当cel ... 
- [Machine Learning & Algorithm] 神经网络基础
			目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网.人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革.要学习深度学习,那么首先要熟悉神经网络(N ... 
- struts2使用annotation注意事项
			struts2使用annotation注意事项 1.包名只能以.action .actions .struts .struts2结尾.如:com.cnbolgs.web.actions 2.类名只 ... 
- html页面读取PDF小案例
			html页面 引用<script src="js/pdfobject.js" type="text/javascript" charset="u ... 
- Android 系统工具类SystemUtils
			包含的功能有: 获取系统中所有APP应用.获取用户安装的APP应用.根据包名和Activity启动类查询应用信息.跳转到WIFI设置.WIFI网络开关.移动网络开关.GPS开关 当前若关则打开 当前若 ... 
- gitlab使用个人版v16.11
			title: gitlab使用个人版v16.11 date: 2016-11-13 20:53:00 tags: [gitlab] --- 1.安装gitbash 附上地址链接:git 2.配置git ... 
- Sublime Text 3编译Sass - Sublime Text安装Sass插件
			1.首先要安装sass,安装流程: http://www.w3cplus.com/sassguide/install.html 2.sublime text安装Package Control(已经安装 ... 
