quartz任务并行
来源:互联网 发布:2017全国最新人口数据 编辑:程序博客网 时间:2024/06/03 16:06
1、并行和串行:
任务有并行和串行之分,并行是指:一个定时任务,当执行时间到了的时候,立刻执行此任务,不管当前这个任务是否在执行中;串行是指:一个定时任务,当执行时间到了的时候,需要等待当前任务执行完毕,再去执行下一个任务。
2、quartz框架中防止任务并行可以有两种方案:
2.1、如果是通过MethodInvokingJobDetailFactoryBean在运行中动态生成的Job,配置的xml文件有个concurrent属性,这个属性的功能是配置此job是否可以并行运行,如果为false则表示不可以并行运行,否则可以并行。如果一个job的业务处理发费的时间超过了job的启动的间隔时间(repeatInterval),这个属性非常有用。如果为false,那么,在这种情况下,当前job还在运行,那么下一个job只能延时运行。如果为true,那么job就会并行运行。
<bean id=" jobCompareB2cAndLocal" class="com.vipshop.management.util.quartz.MethodInvokingJobDetailFactoryBean "> <property name="targetObject " ref="delegateJob " /> <property name="targetMethod " value="方法名" /> <property name="concurrent " value="false "></property > </bean >
2.2、如果是通过自定义要执行的任务的类的名称实现job的话,则有另一种方式:
默认的任务的类实现org.quartz.Job接口,此时任务是stateless(无状态的),即会出现并行的情况,那么如何避免这种情况发生呢?
解决方案:使QuartzJobBean类实现org.quartz.StatefulJob接口即可(StatefulJob接口仅仅是扩展了 Job 接口,未加入新的方法,可以不需实现Job接口了),那么此时任务就会变成stateful(有状态的),此时的任务也就会串行执行了。
public class BackCoupon implements StatefulJob { @Override public void execute(JobExecutionContext context) throws JobExecutionException { }}
文章来源:http://blog.csdn.net/tayanxunhua/article/details/20001335
0 0
- quartz任务并行
- quartz任务串行并行
- quartz任务并行
- quartz任务串行并行
- C#并行编程--并行任务
- 【Quartz】Quartz任务调度入门
- VS2010中的任务并行
- KETTLE 并行任务设置
- 任务并行编程模型
- Python 并行任务技巧
- Python 并行任务技巧
- Python 并行任务技巧
- Python 并行任务技巧
- quartz任务定时任务创建
- Quartz任务调度
- quartz定时任务
- quartz任务管理组件
- Spring+Quartz定时任务
- Android3D画廊总结整理
- 安卓开发者选项-常用功能介绍
- JavaMail:创建内含附件、图文并茂的邮件
- Swingbench 博客合集
- epoll详解(二)-- epoll工作模式
- quartz任务并行
- RedisTemplate API
- REST服务开发实战
- 答疑java初学者常见问题
- JavaMaill:使用MIME协议创建内含图片的复杂邮件
- mysql常用基础操作语法(十)~~子查询【命令行模式】
- python3.5简单爬虫爬取百度百科(参考imooc实战)
- bootstrap modal弹出框的垂直居中
- PHP的魔术方法及异常