quartz集群完整应用实例

quartz集群完整应用实例

ID:47422241

大小:139.15 KB

页数:13页

时间:2019-09-12

quartz集群完整应用实例_第1页
quartz集群完整应用实例_第2页
quartz集群完整应用实例_第3页
quartz集群完整应用实例_第4页
quartz集群完整应用实例_第5页
资源描述:

《quartz集群完整应用实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、由于工作中几乎所有J2EE项目都是部署在weblogic上,并且两台manageserver都做了cluster,所以一直没有关注过quartz的集群,前段时间一个项目正好用到quartz做定时发送邮件,一个开发人员无意中问了我一个问题:如果把定时功能与发邮件的功能分别部署到不同地方,发邮件功能作为后台service部署到weblogic中,而定时功能作为外部调用放在容器之外,这样定时功能就无法享受到weblogic的集群,那如何保证邮件任务的高可用性呢?虽然目前项目不会采用这种做法,但我对这个问题还是比较感兴趣,因为如果能把定时功能和发邮件功能分别部署到不同地方,并且如果都能

2、用集群的方式部署,那么这样系统的可用性就会大大提高,对于邮件发送成功率要求很高,不允许出现半点差错的项目,确实是非常有用的。于是下来查阅了很多资料,终于了解到quartz本身也支持集群。  由于本文不是一篇介绍quartz集群原理的文章,而是实例展示,所以在此不给大家详细讲解quartz集群,大家只需要知道以下几点:    1大家都清楚quartz最基本的概念就是job,在job内调用具体service完成具体功能,quartz需要把每个job存储起来,方便调度,quartz存储job方式就分三种,我们最常用的也是quartz默认的是RAMJobStore,RAMJobStor

3、e顾名思义就是把job的相关信息存储在内存里,如果用spring配置quartz的job信息的话,所有信息是配置在xml里,当spirngcontext启动的时候就把xml里的job信息装入内存。这一性质就决定了一旦JVM挂掉或者容器挂掉,内存中的job信息就随之消失,无法持久化。另外两种方式是JobStoreTX和JobStoreCMT,暂时不讨论这两者的区别,使用这两种JobStore,quartz就会通过jdbc直连或者应用服务器jndi连接数据库,读取配置在数据库里的job初始化信息,并且把job通过java序列化到数据库里,这样就使得每个job信息得到了持久化,即使在

4、jvm或者容器挂掉的情况下,也能通过数据库感知到其他job的状态和信息。    2quartz集群各节点之间是通过同一个数据库实例(准确的说是同一个数据库实例的同一套表)来感知彼此的。   下面进入主题,简单介绍一下本例用到的一些技术。本例架构分为两部分,服务器端和客户端。服务器端部署在weblogic(version9.2)中,并且配置了一个jndi数据库连接池,以便客户端访问。通过hessian发布一个远程service,该service接受一个从客服端传入的参数(该参数标示当前是哪个客户端在调用service);客户端是两个Javaapplication,这两个app通过

5、quartz做了集群,作为集群的两个note,当其中一个notecrash了,另外一个可以接着执行,实现了HA.其中hessian和quartz都是用spring做集成。    下面讲解一下主要代码,因为主要是讲解quartz集群,所以对于spring,hessian等技术就不做详细介绍。    服务器端:     1工程目录:            2remote-servlet.xml:通过hessian把spirngcontext中service暴露给客户端Java代码 1.  2.    

6、3.        class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />  4.  5.      6.      8.        

7、="service" ref="remoteService"/>  9.          10.      11.         3 RemoteServiceImpl.java:远程service,show方法接受一个来自客户端的参数,标示当前执行任务的客户端。Java代码 1.public cl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。