完美解决多应用服务器负载均衡环境下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加入到工程
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用多负载均衡服务器来进行quartz定时任务的部署和管理时,我们可以采用以下的一些方案和策略。 首先,为了实现负载均衡,我们可以使用负载均衡器(Load Balancer)来将请求均匀地分发到多quartz定时任务服务器上。负载均衡器可以根据不同的算法,如轮询、最少连接、源IP等,将任务请求分发到相应的服务器,实现资源的平衡利用。 其次,为了保证任务的高可用性和容错性,我们可以将quartz定时任务服务器设置为多节点集群(Cluster)。各个节点之间通过集群管理协议来协调任务的调度和执行,实现任务的弹性扩展和容灾备份。当某个节点出现故障时,其他节点可以接管故障节点的任务,确保任务的持续执行。 另外,为了确保数据的一致性和可靠性,我们可以采用分布式数据库来存储和管理quartz定时任务的相关数据。通过将任务数据分布在多个数据库实例上,并采用数据同步和故障恢复策略,可以避免单点故障和数据丢失的风险。 此外,为了方便任务的监控和管理,我们可以借助一些监控工具和平来对多负载均衡服务器上的quartz定时任务进行实时监控和性能分析。通过查看任务的执行情况、日志输出和运行指标,可以及时发现并解决任务执行异常和性能瓶颈问题。 最后,为了提升任务的执行效率和响应速度,我们可以采用异步执行和任务分片的方式来并行执行quartz定时任务。通过将任务拆分成多个子任务,并由多个执行器同时执行,可以减少任务的等待时间和执行时间,提高任务的整体处理能力。 综上所述,通过使用负载均衡器、集群管理、分布式数据库、监控工具和异步执行等技术手段,我们可以实现quartz定时任务在多负载均衡服务器上的高效部署和管理。这将为我们提供一个稳定、可靠和高性能的定时任务管理平

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值