`
nesuk
  • 浏览: 169267 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Spring集成Quartz的concurrent属性

阅读更多
关于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推迟执行了。
分享到:
评论
5 楼 lxs647 2018-03-16  
gwnszbd 写道
本文说不同job不够准确,而且会引起歧义,以为是是另一个定时任务,准确的说是
下一次执行的相同job


正解。。。O(∩_∩)O哈哈~
4 楼 gwnszbd 2017-05-24  
本文说不同job不够准确,而且会引起歧义,以为是是另一个定时任务,准确的说是
下一次执行的相同job
3 楼 zqb666kkk 2014-01-29  
不错 正在找这方面的资料
2 楼 尹鹏波 2013-06-18  
我试过对 不同job 同一时间触发,不设置concurrent = false。测试结果是两个任务都会触发的。
1 楼 yming 2013-03-23  
就是说如果调度的是同一个job,在默认concurrent=true的情况下,就会出现“第一个JOB没完成,第二个JOB就开始了”啊?下面是不是LZ说的这种情况啊:
Thread-1正在执行。。
Thread-2正在执行。。
Thread-1正在删除数据。。。
Thread-1任务结束

LZ试过对于不对的JOB,同一个时间触发会有这个问题么,如果不设置concurrent = false的话。
还有个问题就是:spring对quartz进行了封装,默认情况下,它的JOB状态都是无状态的吗?我还有琢磨,呵呵。。

相关推荐

    Spring集成Quartz定时任务框架介绍.docx

    ### Spring集成Quartz定时任务框架介绍 #### 一、引言 在现代JavaEE应用程序开发过程中,定时任务是一项常见的需求。这些任务可能包括但不限于:每天固定时间生成报表、定期清理缓存、定时发送邮件提醒等。传统的...

    spring-quartz简单实例

    Quartz是开源的,可扩展的,且与Spring框架完美集成,为应用提供了灵活且可靠的定时任务管理能力。在这个"spring-quartz简单实例"中,我们将探讨如何在Spring环境下配置和使用Quartz。 首先,我们需要引入Quartz和...

    spring quartz 集群模式

    标题 "spring quartz 集群模式" 涉及到的是Spring框架与Quartz调度器在集群环境下的集成和配置。Quartz是一个开源任务调度框架,而Spring则提供了与Quartz的无缝集成,使得在Java应用中管理和执行定时任务变得更加...

    spring结合quartz的定时的2种方式

    ### Spring 结合 Quartz 的定时任务两种实现方法 在企业级应用开发中,定时任务是非常常见且重要的一个功能模块。Spring 框架结合 Quartz 定时任务调度框架能够提供非常强大的定时任务支持。本文将详细介绍如何利用...

    Spring-quartz计划任务

    **Spring-quartz计划任务** ...同时,可以通过阅读官方文档、博客(如给出的链接)和其他在线资源,学习更多关于Spring与Quartz集成的高级用法,如集群配置、任务持久化等,以便在实际项目中更好地运用这一技术。

    Spring中Quartz调度器的使用 示例代码

    在Spring框架中集成Quartz调度器,可以实现定时任务的高效管理。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行任务。在本示例中,我们将探讨如何在Spring应用中配置和使用Quartz,以及通过示例代码来...

    Spring3.2.3+Quartz2.2 整合配置

    首先,集成Quartz到Spring项目中,我们需要在项目的`pom.xml`或`build.gradle`文件中添加Quartz和Spring的相关依赖。对于Spring 3.2.3,确保引入了如下的Maven依赖: ```xml &lt;groupId&gt;org.springframework ...

    spring多个定时任务quartz配置

    在实际开发中,还可以考虑使用Spring Boot,它提供了更简洁的自动化配置,使得集成Quartz变得更加方便。通过在Spring Boot的application.properties或application.yml中添加相应的配置项,可以轻松地启用Quartz并...

    Spring整合Quartz定时任务实例

    Quartz是一款强大的、开源的...2. **配置Quartz**:在Spring的配置文件(如`applicationContext.xml`)中,创建一个`SchedulerFactoryBean`,并设置相关的Quartz属性,如数据库连接、job存储方式等。例如: ```xml ...

    spring-quartz

    Spring框架提供了与Quartz库的集成,使得我们可以方便地在Spring应用中实现复杂且可扩展的任务调度。Quartz是一个开源的作业调度框架,它支持丰富的调度配置和多种触发器,能够满足大部分的调度需求。 首先,我们...

    spring3-quartz1.x

    在集成Quartz时,我们可以将Quartz的Scheduler、Job、Trigger等组件作为Spring的bean来管理,这样可以利用Spring的优势,例如自动初始化、依赖注入、AOP等特性。 2. **Quartz1.8.6简介** Quartz1.8.6是Quartz的一...

    spring中quartz定时任务实例及配置说明

    通过这种方式,Spring与Quartz的集成使得我们可以方便地在Java应用中添加定时任务,而无需关心底层的调度细节。这种灵活性和可扩展性使得Quartz成为许多企业级应用的首选定时任务解决方案。 总结起来,Spring中的...

    spring定时任务之Quartz

    这篇博客将探讨如何在Spring中集成Quartz来实现定时任务。 首先,我们需要引入Quartz的依赖。在Maven的pom.xml文件中,添加以下依赖: ```xml &lt;groupId&gt;org.quartz-scheduler &lt;artifactId&gt;quartz &lt;version&gt;...

    Quartz与Spring2.0整合Eclipse例程

    而Spring框架是Java领域中广泛使用的轻量级应用框架,它提供了丰富的功能,包括依赖注入、面向切面编程以及用于集成其他系统的支持。将Quartz与Spring结合使用,可以方便地在Spring管理的bean中定义和调度任务,实现...

    ssm集成Quartz1

    【SSM集成Quartz1】是指在Spring、Struts2和MyBatis这三大Java Web开发框架的基础上,引入Quartz作为任务调度库的整合过程。Quartz是一个开源的作业调度框架,可以用来创建和执行定时任务。在这个集成过程中,我们有...

    spring3+ quartz1.8使用以及eclipse代码

    本文将深入探讨Spring3与Quartz1.8的集成与使用,包括配置方法、API使用以及集群设置。 一、Spring3与Quartz的结合 1. 配置引入 首先,我们需要在Spring的配置文件中引入Quartz的相关依赖。在`beans.xml`中添加...

    配置Spring+quartz定时器.docx

    将Quartz与Spring集成可以充分利用Spring的依赖注入功能,简化Quartz的配置过程。 ##### 2.1 导入必要的库 - **Struts项目**:对于使用Struts的项目,需要直接导入以下JAR包: - `spring.jar`:Spring核心库。 -...

    Spring支持的Quartz程序调度

    本篇文章将深入探讨Spring如何与Quartz集成,以及它们之间的协同工作原理。 首先,理解Quartz的核心概念至关重要。Quartz允许开发者创建Job(任务)和Trigger(触发器)。Job是执行的具体任务,而Trigger定义了何时...

    Quartz在Spring中动态设置cronExpression

    Quartz允许开发者定义并执行定时任务,而Spring则提供了依赖注入、面向切面编程等特性,使得集成Quartz变得更为简单和灵活。 ### 重要知识点解析: #### 1. Quartz与Spring的集成 Quartz和Spring的结合,主要是...

    spring task quartz

    在`spring.xml`配置文件中,我们可以看到如何将Spring Task和Quartz集成到Spring应用中。配置Spring Task通常只需要开启调度器和配置`@Scheduled`注解的扫描。对于Quartz,我们需要配置`SchedulerFactoryBean`,包括...

Global site tag (gtag.js) - Google Analytics