zoukankan      html  css  js  c++  java
  • 关于Spring集成Quartz的concurrent属性

    关于Spring集成Quartz的concurrent属性 

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

    Java代码  收藏代码
    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推迟执行了。

  • 相关阅读:
    各大代码托管服务器的分析比较
    《构建之法》读后
    【转】简单的程序诠释C++ STL算法系列之十五:swap
    【转】error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
    C++大会感悟
    一次DDOS攻击引起的安全漫谈
    为npm设置代理,解决网络问题
    Rust 中的类型转换
    Rust 智能指针(二)
    软件设计原则
  • 原文地址:https://www.cnblogs.com/eyesfree/p/8392300.html
Copyright © 2011-2022 走看看