`
medbricom
  • 浏览: 105049 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

完美解决多应用服务器负载均衡环境下spring quartz同一定时任务重复执行问题

阅读更多

部署说明:
 
1.创建quartz集群需要的表(web/doc/tables_oracle.sql)
2.引入3个jar包+spring包
quartz-all-1.8.6.jar(web/web-inf/lib)
quartz-expansion.jar(web/web-inf/lib)
quartz-oracle-1.8.6.jar(web/web-inf/lib)
3.修改quartz.properties
修改数据库url,用户名,密码
org.quartz.dataSource.myDS.URL =xxx
org.quartz.dataSource.myDS.user=xxx
org.quartz.dataSource.myDS.password=xxx

4.编写定时任务处理类、
参考cn.medbri.quzrtzexpansion.sendsms.job里面的类

4.修改spring配置
参考web/web-inf/sendsms_config/spring-sendsms.xml 配置

5.详细参考
http://soulshard.iteye.com/blog/337886

附录说明
org.quartz.scheduler.instanceId设置为不同的值,
或者都设置为AUTO。另外org.quartz.jobStore.isClustered属性必须设为true,
org.quartz.jobStore.clusterCheckinInterval属性为集群中每次检查的时间间隔
(按我的理解,应该差不多等于一个服务器挂了之后,其他服务器接手的时间),单位为毫秒,默认值是15000。
concurrent为true,则允许一个QuartzJob并发执行,否则就是顺序执行
shouldRecover属性为true,则当Quartz服务被中止后,再次启动或集群中其他机器接手任务时会尝试恢复执行之前未完成的所有任务



附件是quartz集群demo,解决负载均衡环境下quartz同一定时任务重复跑问题,采用热备方式,一个app server挂掉第二个app server 马上接手定时任务并补上没有跑完的任务。

由于附件太大所有删除了所有lib
只留下了quartz-all-1.8.6.jar(web/web-inf/lib)
quartz-expansion.jar(web/web-inf/lib)
quartz-oracle-1.8.6.jar(web/web-inf/lib)
个lib,请将自己相关lib加入到工程
3
0
分享到:
评论

相关推荐

    spring+quartz定时集群支持

    在集群环境下,Spring+Quartz的配置需要考虑如何处理多个服务器节点可能同时执行同一任务的问题。为了解决这个问题,Quartz提供了一种集群模式。当配置为集群模式时,每个节点会共享相同的任务存储(通常是数据库)...

    schedule-job, 基于Spring Boot Quartz 的分布式任务调度系统.zip

    1. **集群部署**:多个调度节点部署在同一集群中,通过共享数据库或Redis等分布式存储来协调任务的分配和执行,确保同一任务不会在多台机器上重复执行。 2. **集群同步**:当某个节点添加或更新任务时,会将变更...

    quartz集群 分布式

    综上所述,Spring Quartz结合Quartz集群提供了一种强大而灵活的分布式任务调度解决方案,能够有效地管理和执行定时任务,确保在多服务器环境下的高可用性和稳定性。在实际应用中,根据具体业务需求进行适当的优化和...

    quartz 集群配置

    当需要在分布式环境中运行多个Quartz实例以实现高可用性和负载均衡时,就需要进行Quartz集群配置。 在Spring集成Quartz的过程中,主要涉及以下几个核心概念和步骤: 1. **Job与Trigger**:Job是Quartz中的任务接口...

    quartz-1.6.4

    3. **集群支持**:Quartz可以在多台服务器上运行,实现任务的负载均衡和高可用性。 4. **任务和触发器**:任务(Job)是实际执行的工作,触发器(Trigger)则定义了任务的执行时间。Quartz支持简单触发器、CRON...

    高并发,多子系统 配置化,任务入库定时处理设计思想

    它们可能包含如何设置负载均衡策略、如何设计子系统间的通信接口、如何实现配置化以及如何将任务入库并设定定时执行的代码片段。 总结来说,高并发和多子系统设计提高了系统的处理能力和服务质量;配置化简化了开发...

    全部用到的东西.rar

    3. **Quartz集群**:Quartz集群是指多个Quartz服务器共享同一份作业和触发器的状态,从而实现高可用性和负载均衡。当一个节点失败时,其他节点可以接管其任务,保证服务的连续性。实现Quartz集群通常需要配置共享的...

    通向架构师的道路(第五天)之tomcat集群-群猫乱舞.docx

    2. 定时任务同步:在使用Quartz这类定时任务调度器时,需要确保在集群环境中只有一个实例执行同一任务,以防止重复处理。为此,可能需要使用共享的数据库或分布式协调服务(如Zookeeper)来管理Quartz的任务调度。 ...

    xxl-job-2.3.0.zip

    为了保证分布式环境下任务的幂等性,XXL-JOB采用了分布式锁机制,防止同一任务在同一时间被多次执行。 9. **日志管理**: 每个任务执行都有详细的日志记录,便于问题排查和性能优化。日志可以通过Web界面进行查看...

    java中高级面试必备技术

    Dubbo是一个高性能、轻量级的开源服务框架,它提供了一整套解决方案,包括服务发布、发现、调用、负载均衡、容错、限流等。Dubbo支持多种服务注册与发现方式,其中Zookeeper是最常用的一种。 **1.2 Dubbo工作原理**...

    在线秒杀竞拍网程序源码 功能齐全.zip

    8. **计时器与任务调度**:对于秒杀活动的定时开始和结束,系统需要有计时器功能,可以使用Quartz、Spring Task等任务调度库来实现。 9. **用户认证与授权**:系统应具备用户注册、登录功能,可以使用OAuth2.0、JWT...

Global site tag (gtag.js) - Google Analytics