基于Quartz集团化调度任务分布部署研究.doc

基于Quartz集团化调度任务分布部署研究.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

189****7685 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档