`
zhao_rock
  • 浏览: 190168 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

quartz中设置Job不并发执行

阅读更多
System.out.println("不知道该怎么删除这个Java代码框了");

使用quartz框架可以完成定时任务处理即Job,比如有时候我们设置1个Job每隔5分钟执行1次,后来会发现当前Job启动的时候上一个Job还没有运行结束,这显然不是我们期望的,此时可以设置quartz中的参数,来确保Job不并发执行

 

1. quartz未与Spring结合

//可以通过在实现Job接口的类上加注解的方式
@DisallowConcurrentExecution
public class TestJob implements Job{
 @Override
 public void execute(JobExecutionContext arg0) throws JobExecutionException {
  System.out.println("test");
 }
}

 

2. quartz与spring集成,设置配置文件concurrent参数为false

<bean id="fetchOneJob" class="hm.com.job.FetchDataFromOrgJDBC"/>
 <bean id="fetchOneJobTask"
  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
   <property name="concurrent" >
    <value>false</value>
   </property>
  <property name="targetObject">
   <ref bean="fetchOneJob" />
  </property>
  <property name="targetMethod">
   <value>work</value>
  </property>
 </bean>
 <bean id="fetchOneJobTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail">
   <ref bean="fetchOneJobTask" />
  </property>
  <property name="cronExpression">
   <value>0 0/3 * * * ?</value>
  </property>
 </bean>
 <bean id="startFetchOneJobTime" lazy-init="false" autowire="no"
  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>
    <ref bean="fetchOneJobTime" />
   </list>
  </property>
 </bean>

3
1
分享到:
评论

相关推荐

    quartz有状态Job和无状态Job

    2. **并发控制**:两个或多个有状态Job实例不能并发执行。这意味着如果一个有状态Job正在执行中,即使另一个Job的触发条件满足,也会被阻止执行,直到当前Job执行完毕。 3. **实现接口**:为了实现有状态Job,需要...

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    Quartz.NET会并发地执行这些任务,除非你特别配置为顺序执行。 5. **动态调度**: 除了静态配置任务外,Quartz.NET还支持动态调度。例如,你可以在程序运行时根据需要添加、修改或删除Job和Trigger。 6. **持久化**...

    Quartz调度、终止执行的任务

    在实际应用中,你可能还需要考虑到并发执行、Job状态的持久化以及错误处理等复杂情况。`MyCollectData.java`可能就是实现特定业务逻辑的Job,而`lib`目录包含了Quartz库和其他依赖库,它们是项目运行的必要组成部分...

    Quartz Job Scheduling Framework 中文版

    8. **错误处理与恢复**: 当Job执行过程中出现异常时,Quartz提供了错误处理机制,如设置Job的恢复策略,决定是否重新执行或跳过。 9. **JobStateListener和TriggerListener**: 这些监听器接口允许你在Job执行前、...

    Quartz如何实现判断某个任务是否正在运行,在项目中用到的,已经测试过了

    6. 考虑并发执行:Quartz允许同一个Job并行执行,所以即使`getCurrentlyExecutingJobs()`返回结果,也不能完全排除任务正被执行的可能性。若需要确保任务不并发执行,可以使用`@DisallowConcurrentExecution`注解...

    定时任务quartz实现分组串行并行动态配置

    如果需要限制同一组内的并行执行,可以通过设置Scheduler的属性`org.quartz.threadPool.class`为`org.quartz.simpl.SimpleThreadPool`,然后调整`threadCount`属性来控制并发线程数量。 5. **动态更新配置**:一旦...

    Quartz Job Scheduling Framwork中文文档

    9. **JobDetail**:JobDetail定义了Job的具体信息,包括Job的类、数据绑定(JobDataMap)以及是否可并发执行。 10. **JobStateListener**:监听Job的生命周期事件,如开始、结束、异常等,可以用于记录日志或进行...

    Quartz Job 中文文档 CHM格式

    在Quartz Job的配置中,你可能需要设置数据源(DataSource)来存储Job和Trigger的状态,通常使用RDBMS如MySQL、Oracle等。框架还提供了JobStore接口,用于实现不同持久化机制,如RAMJobStore(内存存储,适合小型...

    spring+quartz动态设置定时时间

    在IT行业中,定时任务是许多系统不可或缺的一部分,用于执行周期性的后台操作,如数据同步、报表生成等。Spring和Quartz是两个广泛使用的Java框架,它们可以协同工作,实现复杂和灵活的定时任务管理。本篇文章将深入...

    完美解决多应用服务器负载均衡环境下spring quartz同一定时任务重复执行问题

    通过`@DisallowConcurrentExecution`注解可以防止同一任务在单个实例中并发执行,但这个注解并不适用于集群环境。 8. **应用层解决方案**:如果Quartz的内置机制不足以满足需求,可以在应用层面添加额外的锁机制,...

    quartz-job初始化数据表.zip

    Quartz 是一个开源的作业...总之,"quartz-job初始化数据表.zip" 文件是设置Quartz作业调度系统的关键步骤,它确保了数据库能正确地存储和管理所有的Job和Trigger信息,从而使得Quartz能够在适当的时间执行预定的任务。

    定时任务设置及实现quartz

    - SimpleTrigger:简单触发器,用于设置固定间隔或一次性执行的Job。 2. 创建定时任务: 使用Quartz,你需要创建Job类,实现`org.quartz.Job`接口,并重写`execute`方法。然后,为Job创建一个Trigger,通过...

    spring java 定时器 执行两次 quartz

    2. **配置错误**:Spring配置中的`@Scheduled`注解或Quartz配置可能设置了错误的触发策略,使得任务被重复触发。 3. **线程安全**:如果你的任务逻辑不是线程安全的,可能会因为并发执行导致问题。 4. **Spring重启*...

    spring注解Quartz定时执行功能

    利用Spring的`@Component`注解将该类注册为bean,再使用Quartz的`@DisallowConcurrentExecution`(防止并发执行)和`@PersistJobDataAfterExecution`(持久化任务数据)注解,以及Spring的`@Scheduled`注解来定义...

    quartz 随tomcat启动执行一次

    ### 关于 Quartz 随 Tomcat 启动执行一次的知识点 #### 1. Quartz 概述 Quartz 是一个开源的作业调度框架,...此外,还可以通过设置 `startDelay` 和 `repeatCount` 属性或在 Job 中关闭调度器来确保任务只执行一次。

    Quartz-JOB-Framework 中文版和QUartz开发指南 .zip

    同时,了解CronTrigger和SimpleTrigger的用法,以及如何处理并发执行的策略,比如设置并发限制或者采用优先级调度,都是关键知识点。通过阅读提供的中文版文档和开发指南,你应该能够全面理解和运用Quartz框架,实现...

    Quartz_Job_Scheduling_Framework_中文版文档

    10. **最佳实践**:文档可能还会包含一些使用Quartz的最佳实践,例如如何优化任务调度,如何处理并发执行的限制,以及如何处理Job执行中的异常情况。 阅读这份中文版文档,开发者将能够深入理解Quartz的原理和用法...

    spring多个定时任务quartz配置

    4. **声明JobDetail**:在Spring配置文件中声明JobDetail,这会告诉Quartz如何实例化和执行Job。例如: ```xml &lt;bean id="myJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"&gt; ...

    quartz job 配置手册

    - **Job**:在Quartz中,Job是执行具体任务的接口,你需要定义一个类实现`org.quartz.Job`接口,然后重写`execute(JobExecutionContext context)`方法来编写实际的工作逻辑。 - **Trigger**:Trigger是触发Job执行...

Global site tag (gtag.js) - Google Analytics