[Java代码] quartz集群
来源:互联网 发布:程序员微电影 编辑:程序博客网 时间:2024/06/09 18:11
用quartz实现了请求重发机制,每间隔一段时间便去数据库中查询需要重发的请求,然后调用httpclient执行重发,对结果进行处理。
(1)配置spring-quartz..xml
(2)MethodInvokingJobDetailFactoryBean在集群环境下会出现job无法序列化的问题,spring目前为止还没有修复。
点击打开链接上面提供了一种2.*版本以前的解决方案,但是我使用 的2.2.1很多类都变成了接口,jira上提供的这种方案已经不可取,所以使用了另外一种方案。
(3)集群配置quartz.properties
这其中有两个碰到的坑
一个是之前碰到过集群环境下出现锁超时的问题,网上说是因为mysql innodb默认的事务隔离级别导致的。然后我加上了这条配置,但是后来仔细研究集群各节点的日志,发现可能是因为我同事启动了一台集群环境外的机器执行了quartz任务。由于未知的原因,导致他的机器不在集群中,但是却能每次拿到quartz锁,(而且只能是他拿到),资料说可能是服务器时间不同步的原因,未能验证。
第二个是
这个大坑我研究了好久,因为之前开发时候为了调试方便,然后定的15s执行一次quartz任务,导致了任务重发执行。后来发现是这个配置的原因。
详见点击打开链接
大致问题就是,服务器重启后,超时1min的任务不会立即执行,小于1min的会立即重新执行。任务间隔时间小于15s就会出现问题。
还有一个是
之前用的quartz结合线程池做请求重发,每次到达任务执行时间,会提交很多任务到线程池中,然后quartz线程就结束了。然而如果线程池中的任务没有执行完,就到达了下一个任务执行节点,就会存在任务重复的问题。后来使用了线程池的任务阻塞方法,在线程池中的所有任务全部执行完成之后,quartz线程才会退出。
(1)配置spring-quartz..xml
(2)MethodInvokingJobDetailFactoryBean在集群环境下会出现job无法序列化的问题,spring目前为止还没有修复。
点击打开链接上面提供了一种2.*版本以前的解决方案,但是我使用 的2.2.1很多类都变成了接口,jira上提供的这种方案已经不可取,所以使用了另外一种方案。
(3)集群配置quartz.properties
这其中有两个碰到的坑
一个是之前碰到过集群环境下出现锁超时的问题,网上说是因为mysql innodb默认的事务隔离级别导致的。然后我加上了这条配置,但是后来仔细研究集群各节点的日志,发现可能是因为我同事启动了一台集群环境外的机器执行了quartz任务。由于未知的原因,导致他的机器不在集群中,但是却能每次拿到quartz锁,(而且只能是他拿到),资料说可能是服务器时间不同步的原因,未能验证。
第二个是
这个大坑我研究了好久,因为之前开发时候为了调试方便,然后定的15s执行一次quartz任务,导致了任务重发执行。后来发现是这个配置的原因。
详见点击打开链接
大致问题就是,服务器重启后,超时1min的任务不会立即执行,小于1min的会立即重新执行。任务间隔时间小于15s就会出现问题。
还有一个是
之前用的quartz结合线程池做请求重发,每次到达任务执行时间,会提交很多任务到线程池中,然后quartz线程就结束了。然而如果线程池中的任务没有执行完,就到达了下一个任务执行节点,就会存在任务重复的问题。后来使用了线程池的任务阻塞方法,在线程池中的所有任务全部执行完成之后,quartz线程才会退出。
0 0
- [Java代码] quartz集群
- [java]spring-Quartz集群
- quartz 集群
- quartz集群
- quartz集群
- quartz集群
- quartz集群
- quartz集群
- Spring结合java Quartz配置实例代码
- Spring结合java Quartz配置实例代码
- Spring结合java Quartz配置实例代码
- quartz代码
- quartz 学习(集群)
- Spring+Quartz tomcat集群
- Spring+quartz集群配置
- Spring+Quartz tomcat集群
- spring+quartz集群1
- Spring+Quartz 集群2
- rand函数和srand函数的用法和区别
- Object-C基础(1)—— 变量名与类型
- Qualcomm虚拟现实开发虚位以待:全新SDK上线
- linux版本
- Android一种快速毛玻璃虚化效果实现
- [Java代码] quartz集群
- Dagger
- tiku网学习记录
- DBSliderView一个高仿屏幕解锁的控件
- VB中数字的交换
- 分布式计算泛型
- java毕向东听课笔记4(数组排序)
- 多选框全选全不选代码
- Java虚拟机学习之多态性实现机制——静态分派与动态分派