以前经常在任务调度程序中使用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推迟执行了。

Spring集成的Quartz 并发的更多相关文章

  1. 关于Spring集成Quartz的concurrent属性

    关于Spring集成Quartz的concurrent属性 以前经常在任务调度程序中使用Spring集成的Quartz,这种方式可以用简单的声明式配置即可实现定时任务,并结合了Spring自身的Bea ...

  2. Spring任务调度之Quartz集成

    推荐一个博客:http://blog.csdn.net/column/details/14251.html 基本概念 Job:是一个接口,只有一个方法void execute(JobExecution ...

  3. Spring Boot集成持久化Quartz定时任务管理和界面展示

    本文是对之前的一篇文章Spring+SpringMVC+mybatis+Quartz整合代码部分做的一个修改和补充, 其中最大的变化就是后台框架变成了Spring Boot. 本工程所用到的技术或工具 ...

  4. Quartz学习总结(1)——Spring集成Quartz框架

    一.Quartz简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简 ...

  5. Quartz与Spring集成

    关于Quartz的基本知识,这里就不再多说,可以参考Quartz的example. 这里主要要说的是,个人在Quartz和Spring集成的过程中,遇到的问题和个人理解. 首先来说说个人的理解: 1. ...

  6. (2)Spring集成Quartz定时任务框架介绍和Cron表达式详解

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...

  7. Spring集成Quartz定时任务框架介绍和Cron表达式详解

    原文地址:http://www.cnblogs.com/obullxl/archive/2011/07/10/spring-quartz-cron-integration.html 在JavaEE系统 ...

  8. Quartz与Spring集成 Job如何自动注入Spring容器托管的对象

    在Spring中使用Quartz有两种方式实现:第一种是任务类继承QuartzJobBean,第二种则是在配置文件里定义任务类和要执行的方法,类和方法可以是普通类.很显然,第二种方式远比第一种方式来的 ...

  9. Spring集成Quartz定时器

    <!-- Spring集成Quartz开始 --> <bean id="startQuertz" lazy-init="false" auto ...

随机推荐

  1. hdu2177威佐夫博弈

    输的话输出0,赢就输出1并且输出第一步走后的数目 威佐夫博弈判断胜负 原理及常见题型求法: http://blog.csdn.net/y990041769/article/details/216940 ...

  2. hdu1846巴什博弈

    巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个.最后取光者得胜. 结论:只要不能整除,那么必然是先手取胜,否则后手取胜. #include<map> ...

  3. ruby on rails Mac 安装

    网上的资料有很多,但好多坑,有的已经过期了,有的不符合现整理了一下 貌似有的还跟os系统版本有关系,请勿照搬,根据实际情况安装 我的系统版本是10.12.3 ps:选择一个较好的网络,很多问题有得时候 ...

  4. Cookie是什么?从哪来?存在哪?往哪去?

    什么是cookie? cookie最简单的介绍就是服务器返回的一个字符串信息,只不过我们每次请求都需要把它发送给服务器.以AFN和android-async-http为例子,默认都会把cookie自动 ...

  5. halcon之最小二乘拟合直线

    如果不了解最小二乘算法 请先阅读: Least squares的算法细节原理https://en.wikipedia.org/wiki/Least_squares 通常在halcon中拟合直线会用ho ...

  6. Maven入门-1.介绍及搭建开发环境

    1.介绍1.1 Maven和Ant的比较?2.搭建Maven开发环境2.1 配置环境变量2.2 测试安装是否成功2.3 配置Maven的本地仓库位置3.Maven的约定4.Maven项目类型5.Mav ...

  7. Linux 网络编程->epoll<-LT/ET模式整理(~相逢何必曾相识~)

    今天自己整理一下epoll,网上有很多经典的介绍,看了很多~收藏了很多~还是整理一下做个积累, 自己的东西好找~ 1. epoll 模型简介 epoll 是Linux I/O 多路复用接口 selec ...

  8. Chrome浏览器中使用 iframe 嵌入网页导致视频不能全屏的问题解决方法

    今天无意中测试了下在 iframe 中嵌入视频, 发现全屏按钮在 Chrome 浏览器中居然无效, 试了好几个视频网站的视频都不能全屏, 但在其他浏览器中似乎都很正常, 应该是 Chrome 60 新 ...

  9. 解决brew报错:Another active Homebrew update process is already in progress

    在mac终端下执行:brew install glew结果报错: Error: Another active Homebrew update process is already in progres ...

  10. 进程的proc文件系统信息

    一.实验代码 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include &l ...