- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Quartz集团化调度任务分布部署研究
基于Quartz集团化调度任务分布部署研究
摘 要: 集团化应用系统中定时任务需要处理的数据量大、任务数量多,为即时快速对所有数据进行处理,需要将任务进行分布部署运行。通过对Quartz调度框架和集群分布部署技术的分析和研究,提出了集团化应用系统任务调度基于Quartz的集群分布部署方案,通过将Quartz和Spring集成并对Quartz调度任务容器进行扩展,在MemCache上进行服务器状态的更新,解决了大型应用系统定时任务的分布运行、故障处理问题。
关键字: Quartz; 任务调度; 集群; 分布部署
中图分类号: TN911?34; TP393 文献标识码: A 文章编号: 1004?373X(2014)02?0080?04
0 引 言
各类应用系统中,都存在着多种类型的定时调度任务,自动进行业务和系统功能的处理,如报表统计、流程流转、系统消息发送、系统运行监控、静态文件生成等。目前大型集团化企业应用系统在向统一规划、统一设计、统一开发、统一部署的大集中式云应用方向发展,通过统一的应用系统有利于进行集团内各分公司、下属单位业务的统一,有效利用硬件资源,通过集群提高系统的可靠性。这类应用系统中的定时任务需处理的数据量较大、任务运行时间长,为了提高数据处理的效率,可能需要将同一任务根据数据来源、类型分成多个任务同时进行处理,在单个服务器上运行大量任务,系统的可靠性不能满足,需要能将任务在多个集群服务器上进行分布部署运行。
JDK中的Timer、ScheduledExecutor是Java中实现定时调度任务的基础方法,但由于其功能较为简单,较难实现复杂的任务调度运行规则,在实际的应用开发中更多使用开源调度框架,如Quartz,Cron4j,JCronTab等,其中Quartz与Spring可以方便的集成,功能丰富,使用最为广泛。但其运行规则配置为代码级别,集群方式不能进行任务的指定服务器分布,不便于任务的运行管理,需要对其进行扩展。
1 Quartz调度框架
Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目。Quartz 为在 Java 应用程序中进行任务调度提供了简单却强大的机制,支持从小型独立应??到大型企业级系统的各种类型Java应用。
1.1 Quartz基本概念
Quartz调度框架中核心元素包括Schedule,Job和Trigger。
Job用于表示被调度的任务,是定时执行的实际业务处理过程[2]。Quartz提供一个单方法的接口支持业务任务的实现。主要有两种类型的Job:无状态的(Stateless)和有状态的(Stateful)。有状态的Job不能被并行执行,只有上一次触发的任务被执行完之后,才能触发下一次执行。
Trigger是用于定义任务调度触发条件,即按照什么时间规则去执行任务。Quartz中主要提供了四种类型的Trigger:SimpleTrigger,CronTirgger,DateIntervalTrigger和NthIncludedDayTrigger。这四种Trigger可以满足企业应用中的绝大部分需求,最长用的是CronTrigger,可以通过Cron表达式进行调度的年、月、日、星期、时、分、秒及循环间隔的定义。Job必须关联到Trigger上才能运行,一个Job可以被多个Trigger关联,但是一个Trigger只能关联一个Job。
Scheduler任务调度器是Quartz的核心,是调度任务的容器和管理器,Job和Trigger都需要注册到Schedule上。Schedule负责任务调度器的初始化,进行任务的启动、停止及任务数据、事件的管理。
1.2 Quartz与Spring基础使用介绍
在J2EE系统中,Quartz可以与Spring方便的进行集成,Job由Spring统一进行关联,可以方便地在Job中注入相关业务bean,并由Spring进行调度容器的初始化、加载全部Job和Trigger并启动运行[3]。
Quartz和Spring基础集成使用过程如下:
(1)通过Quartz的Job接口实现定时任务的业务功能,可引用Spring已定义的其他bean。
(2)在Spring applicationContext.xml中配置任务Bean,通过jobDataAsMap属性为任务注入业务bean,样例代码如下:
//注入业务bean
(3)在Spr
您可能关注的文档
- 基于J2EE框架和Web应用分布式网络系统研究.doc
- 基于Java Web平台科研管理系统设计.doc
- 基于JAVA数据库开发与应用研究.doc
- 基于JSP汽车维护维修客户服务管理系统需求分析.doc
- 基于K—means改进人工蜂群聚类算法.doc
- 基于labview虚拟计算器设计与实现.doc
- 基于LCM无人水面机器人软件系统设计.doc
- 基于Linux嵌入式自动指纹识别系统设计.doc
- 基于LPC1764多道脉冲幅度分析器电路设计.doc
- 基于Mapinfo通信管网数据库设计研究.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)