quartz集群

分布式任务调度

感情迁移 提交于 2019-12-03 10:12:38
1、任务调度   即定时任务 2、Quartz使用入门 1、依赖   < dependency >     < groupId > org.quartz-scheduler </ groupId >     < artifactId > quartz </ artifactId >     < version > 2.2.1 </ version >   </ dependency >   < dependency >     < groupId > org.quartz-scheduler </ groupId >     < artifactId > quartz-jobs </ artifactId >     < version > 2.2.1 </ version >   </dependency> 2、编码 1、实现Job接口    2、实现    3、分布式job的幂等问题   即不重复触发 1、实现方案 1、使用分布式锁 2、使用不同配置文件 2、传统定时任务缺点 1、报错后只能等到第二天触发 2、不支持集群 3、不支持路由策略(分发) 4、任务状态监控,报警机制缺失 4、XXL-JOB 1、源码获取 搜索xxl-job即可,git开源代码 2、原理 1、执行器:执行具体任务的实例 2、调度中心:xxl-job-admin 3、运行 很简单,看文档就行了 来源:

quartz集群调度机制调研及源码分析

匿名 (未验证) 提交于 2019-12-03 00:18:01
quartz2.2.1集群调度机制调研及源码分析 引言 quartz集群架构 调度器实例化 调度过程 触发器的获取 触发trigger: Job执行过程: 总结: 附: 引言 quratz是目前最为成熟,使用最广泛的java任务调度框架,功能强大配置灵活.在企业应用中占重要地位.quratz在集群环境中的使用方式是每个企业级系统都要考虑的问题.早在2006年,在ITeye上就有一篇关于quratz集群方案的讨论: http://www.iteye.com/topic/40970 后来有人总结了三种quratz集群方案: http://www.iteye.com/topic/114965 1.单独启动一个Job Server来跑job,不部署在web容器中.其他web节点当需要启动异步任务的时候,可以通过种种方式(DB, JMS, Web Service, etc)通知Job Server,而Job Server收到这个通知之后,把异步任务加载到自己的任务队列中去。 2.独立出一个job server,这个server上跑一个spring+quartz的应用,这个应用专门用来启动任务。在jobserver上加上hessain,得到业务接口,这样jobserver就可以调用web container中的业务操作,也就是正真执行任务的还是在cluster中的tomcat

quartz集群

£可爱£侵袭症+ 提交于 2019-11-30 01:11:13
其实主要还是借鉴别人的东东,写的还挺好的。我自己只在最后说说自己遇到的坑吧。 1、Quartz任务调度的基本实现原理   Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现。作为一个优秀的开源调度框架,Quartz具有以下特点:     (1)强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;     (2)灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;     (3)分布式和集群能力,Terracotta收购后在原来功能基础上作了进一步提升。本文将对该部分相加阐述。 1.1 Quartz 核心元素   Quartz任务调度的核心元素为:Scheduler——任务调度器、Trigger——触发器、Job——任务。其中trigger和job是任务调度的元数据,scheduler是实际执行调度的控制器。   Trigger 是用于定义调度时间的元素,即按照什么时间规则去执行任务。Quartz中主要提供了四种类型的trigger:SimpleTrigger,CronTirgger,DateIntervalTrigger,和NthIncludedDayTrigger。这四种trigger可以满足企业应用中的绝大部分需求。   Job 用于表示被调度的任务。主要有两种类型的job:无状态的