Quartz工作机制

chenhaozjnubit | | 2016-08-15
1. 启动初始化 Quartz启动时会根据配置信息进行相应的初始化。例如下面的这个spring-quartz.xml配置文件: [阅读全文]
ė821次浏览 60条评论 0 quartz

Quartz源码分析(一)------ 以线程等待的方式实现按时间调度

chenhaozjnubit | | 2016-08-12
Quartz是运用最广的任务调度框架,它最核心的组成部分是Scheduler、Trigger、JobDetail,然后给Scheduler 配置个线程QuartzSchedulerThread,此线程在Scheduler初始化时启动,等待Scheduler start,然后从JobStore里拿到最近要触发的Trigger,以线程等待的方式等到trigger触发时间点,之后就是 [阅读全文]
ė856次浏览 60条评论 0 quartz

Quartz Job Scheduling Framework[翻译]第十一章. Quartz 集群 (第二部分)

chenhaozjnubit | | 2016-08-08
二. Quartz 中集群是如何工作的 一个 Quartz 集群中的每个节点是一个独立的 Quartz 应用,它又管理着其他的节点。意思是你必须对每个节点分别启动或停止。不像许多应用服务器的集群,独立的 Quartz 节点并不与另一其的节点或是管理节点通信。(将来的 Quartz 版本将会设计成让节点能与其他节点直接通信,而不是借助于数据库。) 取而代之的是,Quar [阅读全文]
ė748次浏览 60条评论 0 quartz

基于zookeeper和quartz实现分布式定时调度

chenhaozjnubit | | 2016-07-13
目的 利用zookeeper的特性,来控制quartz实现分布式调度,保证quartz的单点运行,同时解除quartz自身分布式部署对数据库的依赖,保证同一时刻只有一个quartz应用在执行任务。 实现方式 利用zk的分布式独占锁,控制quartz应用执行节点,让拿到独占锁的quartz应用执行调度,没有拿到独占锁的quartz处理等待状态。 [阅读全文]
ė2751次浏览 60条评论 0 zookeeper quartz

Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务

chenhaozjnubit | | 2016-06-28
前面我们已经完成了spring 3和quartz 2的整合以及动态添加定时任务,我们接着来完善它,使之能支持更多的操作,例如暂停、恢复、修改等。 在动态添加定时任务中其实已经涉及到了其中的一些代码,这里我们再来细化的理一理。先来看一下我们初步要实现的目标效果图,这里我们只在内存中操作,并没 有把quartz的任何信息保存到数据库,即使用的是RAMJobStore [阅读全文]
ė1618次浏览 60条评论 0 Spring quartz

Quartz 线程处理

chenhaozjnubit | | 2016-06-22
Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞。 1.在Spring中这时需要设置concurrent的值为false, 禁止并发执行。   2.当不使用spring的时候就需要在Job的实现类上加@DisallowConcurr [阅读全文]
ė916次浏览 60条评论 0 quartz

如何得到quartz中Job的执行状态

chenhaozjnubit | | 2016-03-07
StdSchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); int state = scheduler.getTriggerState(triggerName, triggerGroup); state的 [阅读全文]
ė1308次浏览 60条评论 0 quartz

Quartz recovery 及misfired机制的源码分析

chenhaozjnubit | | 2016-03-03
原文  http://blog.csdn.net/gklifg/article/details/27089605 首先要明确的是:quartz如果在执行具体任务时,在任务执行过程中抛出异常,那么不作任何处理,这是使用者程序本身的问题,不需要框架处理。 下面介 [阅读全文]
ė1361次浏览 60条评论 0 quartz

quartz中参数misfireThreshold的详解

chenhaozjnubit | | 2015-12-29
org.quartz.jobStore.misfireThreshold = 60000 #60秒  默认值 那么执行第一次作业是在10:01秒,这时会设定下一次的执行时间为10:02秒,要等一个作业执行完之后才有可用线程,大概要在10:11秒才能执行前面安排的应该在10:02执行的作业,这时就会用到misfireThreshold, 因为10:11与10:02之间 [阅读全文]
ė1683次浏览 60条评论 0 quartz