
Quartz
文章平均质量分 88
yimeng528
这个作者很懒,什么都没留下…
展开
-
第一节: quartz.net 2.0 简单介绍
在网上看到别贴的话,要想成为技术高手就需要多多的看看别人的代码,理解别的思想,看开源项目就是一个不错的选择。说实话我太想成为技术高手,但是自己悟性太差,半天弄不明白理解不了别人写的代码,为了提高自己的阅读能力,希望自己坚持看完quartz2.0这个开源的项目,顺便也锻炼一下自己写博客的水平。 简单介绍:官网:http://qua...原创 2013-04-03 12:08:02 · 136 阅读 · 0 评论 -
Quartz之CronTrigger
参考资料 1 quartz 学习笔记 http://chinaxxren.iteye.com/blog/897989 任务和触发器是quartz的两大块核心。触发器分CronTrigger 和SimpleTrigger CronTrigger 支持比 SimpleTrigger 更具体的调度,而且也不是很复杂。基于 cron 表达式,CronTrigger 支持类似日历的重复间隔,而不是单一的...原创 2013-04-05 07:14:46 · 129 阅读 · 0 评论 -
Quartz之JobDataMap,PersistJobDataAfterExecution,DisallowConcurrentExecution
参考资料 http://stackoverflow.com/questions/1636556/ensure-that-spring-quartz-job-execution-doesnt-overlap JobDataMap:任务数据传输对象,并且以Map形式存储,它重载了:putAsString()方法,如下图: ,类说明如下: Java代码 JobDataMa...原创 2013-04-05 07:15:09 · 5483 阅读 · 0 评论 -
Quartz之JobExecutionException
问题1 如果你的任务执行发生错误了怎么办呀! Quartz提供了二种解决方法 1 立即重新执行任务 2 立即停止所有相关这个任务的触发器 问题2 怎么去执行呢 Quartz的解决方式是 在你的程序出错时,用Quartz提供的JobExecutionException类相关方法很好的解决 1 立即重新执行任务 Java代码 try { ...原创 2013-04-05 07:15:29 · 858 阅读 · 0 评论 -
Quartz之InterruptableJob
问题1 由于业务需要,停止Quartz中正在执行的任务 Quartz:你的任务类只需要实现InterruptableJob类就可以了 只要实现一个方法:interrupt(),在这个方法中进行标记的改变,在执行中进行这个标记判断 就可实现中断任务了,另外在调度器上调用方法:sched.interrupt(job.getKey()); 在查看Quartz文档中已经有说明了,如下: J...原创 2013-04-06 08:23:36 · 2144 阅读 · 1 评论 -
Quartz之AnnualCalendar
问题1 我想排除一年中的某一天,怎么办呢! Quartz:使用AnnualCalendar进行相应的设置 参考资料 1 Quartz入门简介三 http://wwwzchen.iteye.com/blog/846099 2 quartz 学习笔记 http://chinaxxren.iteye.com/blog/897989 Quartz的BaseCalendar层次结构如下: 在本例中主...原创 2013-04-06 08:23:55 · 404 阅读 · 0 评论 -
Quartz之QuartzInitializerServlet
问题:我想在应用程序启动之后去执行任务怎么办呢! Quartz:使用QuartzInitializerServlet可满足需要 参考资料 1 Quartz调度框架应用总结 http://java.chinaitlab.com/advance/752064_3.html 2 Integrating quartz in a web application http://www.oreillynet...原创 2013-04-06 08:24:18 · 791 阅读 · 0 评论 -
Quartz之QuartzInitializerListener
问题:我想在WEB容器启动时就执行任务怎么办呢 Quartz:使用QuartzInitializerListener就可办到了 请注意它的优先级别比QuartzInitializerServlet要高 在web.xml中可配置的参数如下: 如: Java代码 <context-param> <param-name>...原创 2013-04-06 08:24:38 · 1552 阅读 · 0 评论 -
Quartz之一个任务绑定多个触发器
参见官方示例: Java代码 SchedulerFactory sf = new StdSchedulerFactory( "org/quartz/examples/example14/quartz_priority.properties"); Scheduler sched = sf.getSchedul...原创 2013-04-06 08:24:55 · 1532 阅读 · 0 评论 -
Quartz之CronExpression
参考资料 1 Spring中任务调度(Quartz篇)-续-cronExpression配置说明 http://space.itpub.net/183473/viewspace-434672 2 Quartz Cron 触发器 Cron Expression 的格式 http://www.iteye.com/topic/582119 一 Cron Expression 的格式 Quartz的c...原创 2013-04-05 07:14:12 · 209 阅读 · 0 评论 -
Quartz之SimpleTrigger
SimpleTrigger: 它只能用于指定任务在一个特定时间内运行,可指定任务的重复(时间,次数)与间隔(时间,次数) 代码说明了一切,请参见注释! 工程图片 SimpleJob.java Java代码 import java.text.SimpleDateFormat; import java.util.Date; import org....原创 2013-04-05 07:13:57 · 111 阅读 · 0 评论 -
Quartz2之入门示例
环境:XP+Myeclipse6.5+JDK1.6 quartz官网:http://www.quartz-scheduler.org/ 参考资料 1 Quartz任务调度快速入门 http://www.blogjava.net/baoyaer/articles/155645.html 2 Quartz http://ttaale.iteye.com/blog/630202 http://jav...原创 2013-04-04 08:54:33 · 150 阅读 · 0 评论 -
第二节:调度器,触发器与作业
调度器:Quartz.Net中核心的地方就调度器,调度器负责管理Quartz.NET应用运行时环境。上一节中代码中IScheduler sched = sf.GetScheduler(); 这一句代码看起来简单,其实背后做了好多事情,比如:初始化配置,是使用数据库还是内存,初始化线程池,是否是远程执行job等等,总之挺复杂的。作业:目前我的理解就是job,类似于上一...原创 2013-04-03 12:09:11 · 242 阅读 · 0 评论 -
第三节:Quartz 执行过程
稍微往quartz里面看了下代码在加上自己的揣测,大概梳理下它的执行过程,是如何调度,如何执行任务的。 执行过程:调度器初始化配置,比如JobStore,线程池,轮循线程,作业执行环境等如果有任务来了就把任务扔到JobStore中,有另外的线程会根据触发机制来轮循JobStore中的job,如果满足执行条件就把它扔到线程池中执行,这样一次执行作业的任务就完成了。 ...原创 2013-04-03 12:09:53 · 195 阅读 · 0 评论 -
第四节: Quartz调度器
前面几节简单的介绍了Quartz和其内部的执行过程,内容简单也容易理解,今天正式步入Quartz源码研究刨习,从调度器入手吧! 打开代码,先看下代码整体结构: 调度器介绍:Quartz调度器(Scheduler)主要有两个,一个是远程调度器(RemoteScheduler),一个是标准调度器(StdScheduler),它们是由调度工厂完成实例化的,对用户是封闭...原创 2013-04-03 12:10:36 · 265 阅读 · 0 评论 -
第五节:Quzrtz 的 线程池
在说到Quzrtz线程池的时候要先讲一下线程池的概念 :我个人的理解就是把要执行的东东扔到一个类似水池子的容器里面,给它洗澡,具体怎么洗,洗的干净不干净,还是一个个等着排队洗,都算是线程池对线程的管理,官方的概念也不想找了,就按这样理解吧。百度上找了下有哪些情况下不使用线程池,感觉挺不错,贴出来看下:●如果需要使一个任务具有特定优先级●如果具有可能会长时间运行(并因此阻塞...原创 2013-04-03 12:11:46 · 191 阅读 · 0 评论 -
第六节:Quzrtz JobStore
第六节:JobStore 跟据名称的意思,很可能理解成存放作业的容器,实际上真不是这样,它放的有哪些东东呢?JobStore我只看了RAMJobStore,里面其实放了Job和Trigger以及它们之间的关系。 让我们先看下有哪些jobStore吧,如下面类图: 其实也就是两类,一个是内存中,一个持久化存储. RAMJobStore:RAMJobStor...原创 2013-04-04 08:51:32 · 94 阅读 · 0 评论 -
第七节:Quartz中的cron-like表达式
配置说明请参考:http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html cron-like也有叫unix-like表达式的,主要是对时间的配置,在quartz中主要用于触发器中,主要是根据用户配置的表达式以得出要执行作业的时间,看看Quartz是怎么解析cron-like表达式的,又是如何用于触发器之中。 ...原创 2013-04-04 08:52:02 · 650 阅读 · 0 评论 -
第八节:触发器
上节中学到了quartz 如何解析corn-like 表达式,其实触发器中最核心的地方就是处理时间,这一节让我们来了解下quartz中的触发器有哪些吧: 我想大家一定首先想到的就是处理corn-like的触发器吧,它就是CronTriggerImpl触发器,还是看一下类图,看看有多少触发器,和它们之间的关系吧 如上图,所有的触发器继承了ITrigger接口和Ab...原创 2013-04-04 08:52:38 · 191 阅读 · 0 评论 -
第九节:Quartz中的作业
做为使用quartz的我们,其实最关心的就job,job里面会实现我们要执行的业务代码,相对于调度器触发器来讲,job相对简单一些。 先睹图为快: 我们继承IJob接口定义的job会被封装到JobDetailImpl中,JobDetailImpl还包括其它属性,比如唯一标识job的JobKey(如上图),可见记录job状态的JobDataMap(如上图),还有就是是否支持持...原创 2013-04-04 08:53:23 · 124 阅读 · 0 评论 -
Spring--quartz中cronExpression配置说明
Spring--quartz中cronExpression配置说明字段 允许值 允许的特殊字符秒 0-59 , - * /分 0-59 , - * /小时 0-23 , - * /日期 1-31 , - * ? / L W C月份 1-12 或者 JAN-DEC ...原创 2013-07-09 18:14:10 · 126 阅读 · 0 评论