Quartz任务并发处理
来源:互联网 发布:手机遥控ppt软件 编辑:程序博客网 时间:2024/06/05 00:31
描述:使用quartz,设置的任务间隔是30秒,但是发现有的情况下,30秒内还没有处理完,此时,一个新的线程被创建,上一个30秒处理的数据又再次被get到并被处理,导致数据被处理两次【在数据库中更新两次或插入两次】。
想要的结果:当一个job再30秒内,还没有执行完毕,下一个线程不会被创建,从而保证在同一个时间点,相同的job不会被处理两次或更多次。
实现:
1)使用quartz【1.8.6】,任务类由原来实现Job,改为实现StatefulJob,该接口只是扩展了Job接口,执行过程中,使当前任务是有状态的,从而保证任务串行执行。
2)使用quartz【2.2.2】,在quartz2.0之后,提供了@DisallowConcurrentExecution注解,将这个注解加到job类上既可。
3)使用MethodInvokingJobDetailFactoryBean
生成job,只需要配置属性concurrent=flase
即可保证线程中的任务执行完毕,才会创建新的线程
阅读全文
0 0
- Quartz任务并发处理
- 使用Quartz处理定时任务
- Spring Quartz 多任务、并发配置
- Apache 多任务并发处理
- quartz 对于有状态的任务处理
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- quartz个别任务不执行处理
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- 用Quartz处理定时执行的任务
- java多任务并发处理--Callable<?>
- JAVA并发-中断处理和任务取消
- 11个强大的Visual Studio调试小技巧
- Error:Not a NetCDF id
- html中url路径请求的六种方式:无斜杠、单斜杠(/)、点+单斜杠(./)、点点+单斜杠(../)、多个点点+单斜杠(../../)、全路径
- 【VS开发】【C/C++开发】关于boost库的C++11导致的undefined符号问题
- 常见爱忘的java基础语法
- Quartz任务并发处理
- c++对象创建
- bzoj 3196 Tyvj 1730 二逼平衡树(主席树)
- 计算几何【2】 判断凹凸多边形
- 第二十一讲 集合概述、ArrayList和LinkedList的应用
- numpy 维度与轴
- 日常shell 使用问题备忘
- musical.ly 实习小结一
- 邮政集团的OA系统无法显示文档