关于Spring集成Quartz的concurrent属性

以前经常在任务调度程序中使用Spring集成的Quartz,这种方式可以用简单的声明式配置即可实现定时任务,并结合了Spring自身的Bean的管理功能,非常方便。配置样本如下:

  1. <bean id="transmitTask"
  2. class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  3. <property name="targetObject">
  4. <ref bean="transTaskBusiness" />
  5. </property>
  6. <property name="targetMethod">
  7. <value>execute</value>
  8. </property>
  9. <property name="concurrent">
  10. <value>false</value>
  11. </property>
  12. </bean>

其中concurrent属性标识的解释为:对于相同的JobDetail,当指定多个Trigger时, 很可能第一个job完成之前,第二个job就开始了。指定concurrent设为false,多个job不会并发运行,第二个job将不会在第一个job完成之前开始。

那么此处的第二个job到底是被推迟执行了,还是被取消了呢? 今天带着这个疑问做了一个小实验,具体做法如下:将任务的Trigger设置为每10秒钟执行一次,然后在执行的任务体内让Thread暂停15秒钟,这样不同的job之间肯定会有时间上的重叠。当启动程序之后,发现前一个job执行结束的时刻的秒数为15,而且第二个本来在10s就执行的job马上就启动了。

由此可见,concurrent属性实际是将job推迟执行了。

最新文章

  1. [NOI2006] 最大获利
  2. Sprint2团队贡献分
  3. ex1-第一个程序 ”helloworld”
  4. Unity3D 学习——入门资料整理
  5. javascript - 内置对象 String/Date/Array/Math
  6. 小菜鸟学Spring-读取属性文件值(三)
  7. HDU 2602 (简单的01背包) Bone Collector
  8. LA 2889 (找规律) Palindrome Numbers
  9. 重写equals()与hashCode()方法
  10. 插件lombok的介绍安装
  11. python3之OS与sys模块
  12. 安卓笔记--- intent传递自定义类
  13. linux中使用gdb调试程序
  14. ruby 中 手动执行job任务
  15. 买了第一台mac
  16. object references an unsaved transient instance save the transient instance before flushing
  17. 2018ACM-ICPC焦作区域赛【反思总结】
  18. Difference between HashMap and Hashtable | HashMap Vs Hashtable
  19. php PDO遇到的坑
  20. Hibernate or JPA Annotation中BLOB、CLOB注解写法

热门文章

  1. 使用git命令修改commit提交信息
  2. 这群程序员疯了!他们想成为IT界最会带货的男人
  3. web快速开发框架 WebBuilder 8.7发布
  4. 看demo1
  5. DEVOPS技术实践_07:Jenkins 管道工作
  6. CentOS 下 maven 安装
  7. final阶段20191121-5 Scrum立会报告+燃尽图 01
  8. mysql:数据库与实例的区别
  9. 洛谷$P$2235 $Kathy$函数 $[HNOI2002]$ 数位$dp$
  10. .Net Core Linux 下面的操作