`

quartz 在 spring静态、动态配置

    博客分类:
  • j2ee
 
阅读更多

项目要求动态改变配置时间,动态改变quartz的 cron表达式,查了一下资料,大多是关于用quarz本身的表结构

下面是我的用法

一、配置spring 下面是我的配置,具体就不详细介绍了。

 <!-- ******quartz 配置 主要针对审计中定义的任务 -->
   
   <!-- 节点停止时的 具体执行-->
    <bean  id ="nodeStopJob" 
        class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" > 
         <property  name ="targetObject"   ref ="delSchedule"  /> 
         <property  name ="targetMethod"  value ="doNodeStop"   /> 
         <property  name ="concurrent"  value ="false"   /> 
     </bean>  
    
    <!-- 节点停止时的 触发这里我用的是表达式,也只是simpleTrigger-->
     <bean  id ="nodeStopTrigger" 
        class ="org.springframework.scheduling.quartz.CronTriggerBean" > 
         <property  name ="jobDetail"  ref ="nodeStopJob"   /> 
         <property  name ="cronExpression" >              
             <value >0 0/2 * * * ?</value > 
         </property > 
     </bean> 
     
   <!-- scheduler factory -->
	<bean  id ="schedulerFactory" 
	        class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" > 
	         <property  name ="triggers" > 
	             <list>                     
	                 <ref local ="nodeStopTrigger"/> 
	             </list> 
	         </property> 
	     </bean>   

 二、动态改变cronExpression

//此类粗略书写,只为能表达那么个意思
public class xx {
	
  private Scheduler scheduler;//注入任务工厂
public void changeCronExpression(){
  CronTriggerBean trigger  =  (CronTriggerBean)scheduler.getTrigger("nodeStopTrigger", Scheduler.DEFAULT_GROUP);
  		      // 设置trigger的时间规则 
  		      trigger.setCronExpression(cron);
  			 // 重置job 
  			  scheduler.rescheduleJob("nodeStopTrigger", Scheduler.DEFAULT_GROUP, trigger);
}
 public Scheduler getScheduler() {
             return scheduler;
  }
  public void setScheduler(Scheduler scheduler) {
             this.scheduler = scheduler;
  }
}

 

 

-----------------------------灵活变通----------------------------------------

分享到:
评论

相关推荐

    quartz在Spring中的配置

    ### quartz在Spring中的配置 #### 一、简介与基本配置 Quartz 是一款开源的任务调度框架,被广泛应用于 Java 应用程序中进行任务的定时调度。它支持复杂的触发规则,能够实现高度灵活的任务调度机制。Spring 框架...

    Spring Quartz Demo

    3. **配置Quartz in Spring**:在Spring配置文件中,我们需要定义`SchedulerFactoryBean`来创建和配置Quartz调度器。同时,也需要配置`JobDetail`对象来描述任务,并通过`CronTrigger`或`SimpleTrigger`来设置触发...

    quartz1.86+spring3.2测试实例

    在Spring中,可以通过`&lt;bean&gt;`标签和`quartz:job-ref`来配置Job,`quartz:trigger`来配置Trigger,这样可以将Quartz的配置融入到Spring的IoC容器中,使得任务的管理和控制更加简便。 Spring 3.2则是Spring框架的一...

    动态加载属性文件与SpringQuartz的应用

    在IT行业中,动态加载属性文件和Spring Quartz的整合应用是一个重要的技术话题,特别是在构建大型、分布式和可扩展的系统时。下面将详细讲解这两个概念及其相互间的应用。 首先,我们来了解一下动态加载属性文件。...

    Quartz2.2.3+Spring4.3.14整合demo

    5. 初始化 Quartz:在 `web.xml` 中添加一个 ServletContextListener,如 `org.springframework.scheduling.quartz.SchedulerFactoryBean`,在应用启动时初始化 Quartz Scheduler,并加载 Spring 配置中的 Job 和 ...

    spring+quartz实现定时任务动态管理

    Spring为Quartz提供了良好的支持,允许我们在Spring配置文件中定义Job和Trigger,使得任务调度更加方便。在项目中,我们可以通过编写实现`org.springframework.scheduling.quartz.JobDetailBean`的类来定义一个任务...

    spring整合quartz文档

    Spring 整合 Quartz 是一种常见的任务调度解决方案,用于在应用程序中安排和执行周期性的任务。Quartz 是一个功能丰富的开源任务调度库,适用于 Java 平台,尤其适用于 J2EE 和 J2SE 应用。它允许开发人员精确地定义...

    结合spring和quartz实现定时生成网站主要的静态页面

    这通常通过Maven或Gradle的配置完成,然后在Spring配置文件中声明Quartz的相关bean,如SchedulerFactoryBean,以及Job和Trigger。 2. **定义生成静态页面的Job**:创建一个实现了`org.quartz.Job`接口的类,这个类...

    Spring Quartz集成

    总结来说,Spring Quartz集成提供了在Spring环境中便捷地管理和调度定时任务的能力,通过配置文件可以实现任务的静态定义,而在需要动态调整时,可以通过自定义扩展来实现更复杂的需求。理解这些核心概念和机制,...

    spring quartz 表达式生成器 网页版

    5. **应用到Spring**:在Spring中,你可以使用`@Scheduled(cron = "your-generated-expression")`注解来安排一个方法的执行,或者在配置文件中定义`&lt;bean&gt;`来创建` CronTrigger`。 理解Quartz表达式的关键点: - *...

    Spring-quartz.zip

    在`src/main/java`下,你可能会找到定义静态任务和动态任务的Java类,而在`src/main/resources`下可能有Spring的配置文件(如`applicationContext.xml`),以及Quartz的配置。 总的来说,这个项目演示了如何在...

    基于Spring的Quartz动态定时任务增删改查源码.rar

    本资源"基于Spring的Quartz动态定时任务增删改查源码.rar"提供了一套完整的示例,帮助开发者了解如何在Spring环境中集成Quartz来实现动态管理定时任务。 首先,Quartz的核心概念包括Job(任务)、Trigger(触发器)...

    spring动态定时器封装

    2. **配置Quartz**:在Spring的配置文件中,我们需要配置一个`SchedulerFactoryBean`,用于创建和管理Quartz的Scheduler实例。在这里,我们可以设置一些基本的Quartz属性,如线程池大小、存储策略等。 3. **定义Job...

    quartz动态从数据库获取时间定时改进

    在“quartz动态配置.docx”文档中,可能详细描述了以上步骤的实现细节,包括如何配置Spring与Quartz的整合,以及如何编写相关的Java代码。而“quartz-1.6.5”可能是Quartz的旧版本库,可能包含示例代码或API文档,供...

    Quartz原理及实例

    Quartz原理及实例,spring4.x+Quartz.2.2.1结合的开发,静态和动态实例

    org.quartz.tool包源码

    `QuartzBean.java`可能是实现Quartz与Spring框架集成的一个bean,这样可以在Spring应用上下文中管理Quartz的配置。通过将`QuartzBean`声明为bean,我们可以利用Spring的优势,如依赖注入,来管理Quartz的配置和生命...

    quartz quartz quartz

    动态设置时间是指在应用程序运行过程中,根据需要动态地调整任务的执行计划,而不是在应用启动时静态配置。 在描述中提到的动态定时任务是指,服务端只需关注执行的任务本身,而任务的执行时间由客户端(可能是用户...

    JSP动态生成HTML静态页面源码

    具体实现可能涉及到Java Servlet、JSP标签库(Tag Library)、文件I/O操作以及可能的定时任务(如Quartz或Spring Scheduler)来定期检查和更新静态页面。 学习这个源码,你可以深入理解JSP与静态页面之间的转换机制...

    spring-boot html thymeleaf

    1. **模板引擎集成**:Spring Boot 默认已经集成了 Thymeleaf,只需在配置文件中声明视图解析器即可。 2. **视图解析**:视图解析器会根据逻辑视图名(例如 "home")找到对应的模板文件(如 `src/main/resources/...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言...

Global site tag (gtag.js) - Google Analytics