关于Spring集成Quartz的concurrent属性
2024-10-19 23:23:59
关于Spring集成Quartz的concurrent属性
以前经常在任务调度程序中使用Spring集成的Quartz,这种方式可以用简单的声明式配置即可实现定时任务,并结合了Spring自身的Bean的管理功能,非常方便。配置样本如下:
- <bean id="transmitTask"
- class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <property name="targetObject">
- <ref bean="transTaskBusiness" />
- </property>
- <property name="targetMethod">
- <value>execute</value>
- </property>
- <property name="concurrent">
- <value>false</value>
- </property>
- </bean>
其中concurrent属性标识的解释为:对于相同的JobDetail,当指定多个Trigger时, 很可能第一个job完成之前,第二个job就开始了。指定concurrent设为false,多个job不会并发运行,第二个job将不会在第一个job完成之前开始。
那么此处的第二个job到底是被推迟执行了,还是被取消了呢? 今天带着这个疑问做了一个小实验,具体做法如下:将任务的Trigger设置为每10秒钟执行一次,然后在执行的任务体内让Thread暂停15秒钟,这样不同的job之间肯定会有时间上的重叠。当启动程序之后,发现前一个job执行结束的时刻的秒数为15,而且第二个本来在10s就执行的job马上就启动了。
由此可见,concurrent属性实际是将job推迟执行了。
最新文章
- [NOI2006] 最大获利
- Sprint2团队贡献分
- ex1-第一个程序 ”helloworld”
- Unity3D 学习——入门资料整理
- javascript - 内置对象 String/Date/Array/Math
- 小菜鸟学Spring-读取属性文件值(三)
- HDU 2602 (简单的01背包) Bone Collector
- LA 2889 (找规律) Palindrome Numbers
- 重写equals()与hashCode()方法
- 插件lombok的介绍安装
- python3之OS与sys模块
- 安卓笔记--- intent传递自定义类
- linux中使用gdb调试程序
- ruby 中 手动执行job任务
- 买了第一台mac
- object references an unsaved transient instance save the transient instance before flushing
- 2018ACM-ICPC焦作区域赛【反思总结】
- Difference between HashMap and Hashtable | HashMap Vs Hashtable
- php PDO遇到的坑
- Hibernate or JPA Annotation中BLOB、CLOB注解写法
热门文章
- 使用git命令修改commit提交信息
- 这群程序员疯了!他们想成为IT界最会带货的男人
- web快速开发框架 WebBuilder 8.7发布
- 看demo1
- DEVOPS技术实践_07:Jenkins 管道工作
- CentOS 下 maven 安装
- final阶段20191121-5 Scrum立会报告+燃尽图 01
- mysql:数据库与实例的区别
- 洛谷$P$2235 $Kathy$函数 $[HNOI2002]$ 数位$dp$
- .Net Core Linux 下面的操作