`

quartz并发(总结)

 
阅读更多

1.http://blog.csdn.net/pdw2009/article/details/50195639

 

 

Your job class needs to implement StatefulJob, or alternatively, if you are using Quartz 2.x, be annotated with @DisallowConcurrentExecution.

This is how concurrent execution can be controlled in Quartz, and in particular MethodInvokingJobDetailFactoryBean just uses different job classes depending on the value of concurrent.

 
quartz job有时我们希望当前的job执行后,再执行下次的job,有两种方法可实现
1、job类实现StatefulJob接口
2、 在job类前加上@DisallowConcurrentExecution



有时我们不希望程序一次动就执行job等 待下次触发,在quartz.properties中加上:
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true

 

 

 

 

2.https://my.oschina.net/liujiawan/blog/503697?p={{page}}

 

在执行定时任务的时候,把定时任务的时间设置为10分钟执行一次,由于数据量很大,第一个十分钟还没执行结束,第二个十分钟已经开始了,这样就造成了并发,但是又不想用

java中的锁,这样很纠结,在网上找了好多资料

其实很简单,我们只要在detail的参数里加上一句话就行了,把这个job设置成有状态的job

<property name="concurrent" value="false" /> ③ 指定最终封装出的任务是否有状态

通过concurrent属性指定任务的类型,默认情况下封装为无状态的任务,如果希望目标封装为有状态的任务,仅需要将concurrent设置为false就可以了。Spring通过名为concurrent的属性指定任务的类型,能够更直接地描述到任务执行的方式(有状态的任务不能并发执行,无状态的任务可并发执行)

 

 

 

3.http://blog.csdn.net/tiantangpw/article/details/41120137

 

 

 

4.https://zhidao.baidu.com/question/414090365.html

 

在执行的方法入口加一个锁呗,每次进入的时候判断一下是否已锁就行了。job还是5分钟调一次。
 
追问
如何来实现呢?
 
追答
public class Job {
	private Object lock = new Object();
                private volatile boolean isRunning = false;
	public void run() {
			synchronized(lock) {
			if(isRunning ){
				return;
			}
	
			isRunning = true; 
                                               //执行。。。
                           isRunning = false; 

		}
          }

 

 

5.http://www.oschina.net/question/436266_129634%3Fsort%3Dtime?sort=time

不并发有两种方式:

1、使用spring xml配置,对jobDetail bean的concurrent属性设置为false;(隐约记得不写默认好像也是false)(推荐)

2、将job设置成有状态,即继承statefuljob接口。这个比较麻烦,不推荐使用。

3、或者将quartz properties配置中的连接池大小,改为1,这样肯定就不能并行(不推荐)

4、可以使用类静态变量标识是否当前job正在运行

 

6.

 

 

7.

 

 

分享到:
评论

相关推荐

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    在实际应用中,可能还需要关注Quartz的异常处理、日志记录、任务间的依赖关系以及并发执行策略等细节。这些都可通过Quartz的API或Spring的配置进行定制。 总之,Spring与Quartz的整合使得我们能够便捷地在Spring...

    Quartz使用总结

    ### Quartz使用总结与详解 #### 一、Quartz概述 Quartz是一个开源的任务调度框架,主要功能在于能够根据用户自定义的时间规则来触发任务执行。Quartz提供了丰富的接口供开发者进行二次开发,使得任务调度变得非常...

    spring quartz集群配置

    总结,Spring Quartz集群配置涉及到多个步骤,包括选择合适的Job Store、配置Spring集成、定义定时任务以及优化集群设置。正确配置后,我们可以获得高可用和可扩展的定时任务调度系统,满足大规模分布式系统的需求。

    Quartz 线程池

    总结,Quartz 线程池是实现高效、可靠任务调度的关键组件。理解其工作原理并合理配置,能够帮助我们更好地利用系统资源,提升应用的响应速度和稳定性。在开发过程中,对线程池的监控和优化是确保系统性能的重要环节...

    quartz3种调度形式+传参.zip

    总结,Quartz的三种调度形式满足了不同场景下的定时任务需求,而与Spring的整合则进一步提升了其易用性和可维护性。了解并掌握这些知识,对于开发Java后台服务,特别是涉及到定时任务处理的项目,有着重要的实践价值...

    Quartz2.2.1基于Spring注解方式配置Quartz

    总结,通过上述步骤,我们已经成功地使用Spring注解配置了Quartz2.2.1,实现了基于注解的任务调度。这种方式简化了配置,使得任务管理和扩展更加方便。在实际开发中,可以根据项目需求调整触发规则,实现复杂的定时...

    quartz-1.6.0 jar&src

    总结起来,Quartz-1.6.0 是一个功能强大的作业调度框架,适用于各种 Java 应用场景,它提供了丰富的调度选项、持久化支持、集群能力,并且源代码开放,便于理解和定制。无论是大型企业应用还是个人项目,都可以从中...

    QuartzDemo及iis闲置时间解决方案

    6. **优化Quartz.NET配置**:确保Quartz.NET配置文件(通常是quartz.config)中的设置适合你的需求,例如,设置适当的线程池大小,以便在多并发任务时能有效处理。 总结起来,Quartz和IIS结合使用时,可能会遇到IIS...

    quartz集群各种数据库建表脚本

    总结起来,"quartz集群各种数据库建表脚本"是实现Quartz集群的关键组件之一,它确保了各个节点之间任务信息的一致性,从而实现高可用和容错性的目标。在部署Quartz集群时,正确地执行这些脚本是成功配置的前提。同时...

    spring 集成quartz 用数据库实现quartz的集群

    总结来说,Spring集成Quartz并使用数据库实现集群的关键在于: 1. 添加Quartz和Spring支持的依赖。 2. 在Spring配置文件中创建`SchedulerFactoryBean`,配置数据源和Quartz属性。 3. 配置`quartz.properties`,指定...

    spring boot集成quartz定时器

    总结,Spring Boot集成Quartz定时器能够方便地创建和管理定时任务,同时利用Spring的依赖注入,使得Job可以灵活地调用其他服务或组件。这种方式使得我们的任务更加模块化和易于维护。在实际开发中,根据项目需求,...

    quartz 随tomcat启动执行一次

    它提供了丰富的调度器功能,如支持复杂的循环调度、支持并发控制等。Quartz 可以被应用在任何 Java 应用中,但大多数情况下,它被用于构建服务端应用。 #### 2. Tomcat 启动时调用 Quartz 执行一次 根据题目中的...

    Lesson 1: Using Quartz

    除了基本功能外,Quartz还支持并发控制、任务依赖、调度监听器等功能。开发者可以根据项目需求,通过配置和编程实现更复杂的任务调度策略。 总结,Quartz作为Java领域的强大任务调度框架,其灵活性和稳定性使其在...

    Quartz.NET-0.6

    总结来说,Quartz.NET是一个强大的.NET任务调度框架,它通过简单易用的API让开发者能够轻松管理定时任务。通过解压包中的文件,我们可以深入了解其内部结构、构建过程和使用方法,从而更好地在项目中集成和利用这一...

    Quartz集群配置和示例源码

    总结,Quartz集群配置涉及到数据库、配置文件、Job和Trigger的定义,以及集群监听器的设置。通过这些配置,可以实现任务的高可用性和并发控制,提高系统的整体稳定性。示例源码通常会展示如何创建Job、Trigger,以及...

    Quartz - 作业调度框架

    3. **并发控制**:对于同一Job,Quartz允许设置并发策略,如允许多个实例同时运行,或者确保只有一个实例运行。 4. **监听器**:通过实现`JobListener`和`TriggerListener`接口,可以监听Job的执行和Trigger的触发...

    quartz 调用两次任务

    Quartz 是一个开源的作业调度框架,...总结,解决 "quartz 调用两次任务" 的问题需要对 Quartz 的工作原理有深入理解,并对代码、数据库、服务器配置进行细致的排查。通过上述步骤,通常能够找到问题所在并进行修复。

    quartz 1.7.3

    2. **声明式任务**: Spring与Quartz结合,可以使用`@DisallowConcurrentExecution`和`@PersistJobDataAfterExecution`注解来控制任务的并发执行策略和数据持久化。 3. **定义作业和触发器**: 通过实现`org.quartz....

    quartz-jar.7z

    8. **并发控制**:Quartz允许设置Job的并发策略,比如是否允许多个实例同时运行,或者确保同一时间只有一个实例在执行。 在压缩包中的"quartz-all-1.6.5.jar"文件包含了Quartz库的所有组件,包括核心库、JDBC作业...

    quartz定时器2.2.1JAR包

    总结,Quartz定时器2.2.1JAR包为开发者提供了强大的任务调度功能,无论是简单的定时任务还是复杂的调度场景,都能游刃有余地处理。通过理解其核心概念,正确配置和使用,能够极大提升Java应用的自动化水平。

Global site tag (gtag.js) - Google Analytics