quartz集群调度机制调研及源码分析
来源:互联网 发布:java创建动态数组赋值 编辑:程序博客网 时间:2024/06/07 12:40
推荐博文:http://www.cnblogs.com/davidwang456/p/4205237.html
原文:http://demo.netfoucs.com/gklifg/article/details/27090179
该博文针对quartz, 进行集群扩展分析非常的透彻。
原文是使用数据库进行集群扩展, 如果有时间我们可以使用Redis或者其他内存数据库进行集群扩展。
主要改动两个地方,这只是本人分析的结果。请大家指教。
1、JobStoreSupport.acquireNextTriggers() 方法
public List<OperableTrigger> acquireNextTriggers(final long noLaterThan, final int maxCount, final long timeWindow) throws JobPersistenceException { String lockName; if(isAcquireTriggersWithinLock() || maxCount > 1) { lockName = LOCK_TRIGGER_ACCESS; } else { lockName = null; } return executeInNonManagedTXLock(lockName, new TransactionCallback<List<OperableTrigger>>() { public List<OperableTrigger> execute(Connection conn) throws JobPersistenceException { return acquireNextTrigger(conn, noLaterThan, maxCount, timeWindow); } }, new TransactionValidator<List<OperableTrigger>>() { public Boolean validate(Connection conn, List<OperableTrigger> result) throws JobPersistenceException { //...异常处理回调方法, 添加自己的方法使得支持数据库或者Redis进行集群扩展 } }); }
2、JobStoreSupport.triggersFired()
public List<TriggerFiredResult> triggersFired(final List<OperableTrigger> triggers) throws JobPersistenceException { return executeInNonManagedTXLock(LOCK_TRIGGER_ACCESS, new TransactionCallback<List<TriggerFiredResult>>() { public List<TriggerFiredResult> execute(Connection conn) throws JobPersistenceException { List<TriggerFiredResult> results = new ArrayList<TriggerFiredResult>(); TriggerFiredResult result; for (OperableTrigger trigger : triggers) { try { TriggerFiredBundle bundle = triggerFired(conn, trigger); result = new TriggerFiredResult(bundle); } catch (JobPersistenceException jpe) { result = new TriggerFiredResult(jpe); } catch(RuntimeException re) { result = new TriggerFiredResult(re); } results.add(result); } return results; } }, new TransactionValidator<List<TriggerFiredResult>>() { @Override public Boolean validate(Connection conn, List<TriggerFiredResult> result) throws JobPersistenceException { //...异常处理回调方法 } }); }
0 0
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析---转载
- Quartz 集群源码分析
- Quartz recovery 及misfired机制的源码分析
- Quartz recovery 及misfired机制的源码分析
- Quartz任务调度--集群
- Spark资源调度机制源码分析--基于spreadOutApps及非spreadOutApps两种资源调度算法
- Quartz任务调度机制
- 内核源码分析之进程调度机制
- 二、Quartz任务调度--集群
- spark 调度模块详解及源码分析
- spark 调度模块详解及源码分析
- 【郑轻】[1895]985的0-1串难题
- 第15课:scala类型参数编程实战及spark源码鉴赏
- [Android]Android去掉上方的标题栏。
- 分词词性列表
- 海量大数据解决方案
- quartz集群调度机制调研及源码分析
- 如何在AS导入jar&&so文件
- 应用scikit-learn做文本分类 提feature tfidg共享词库 分类 聚类
- java动态代理
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- python pass用法
- leetcode 374—注意溢出,二分左边界,右边界
- js,给定一个数,如何求Fibonacci值
- Java匿名对象