`
jxh118
  • 浏览: 125239 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Quartz与Spring结合时如何动态更新Job的启动时间

阅读更多

动态更新的Java类如下:

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class QuartzTest {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
            "/applicationContext.xml");
    private static String INSTANCE_NAME = "DEFAULT";

    public void test() throws Exception {
        Scheduler sch = (Scheduler) context.getBean("BatchJobStarting");
        JobDetail myJob = sch.getJobDetail("CleanLogJob", INSTANCE_NAME);
        CronTrigger newTrigger = new CronTrigger("trig_batch", INSTANCE_NAME,
                "0/3 * * * * ?");
        JobDetail newJob = (JobDetail) myJob.clone();
        sch.deleteJob("CleanLogJob", INSTANCE_NAME);
        sch.scheduleJob(newJob, newTrigger);
    }

    public static void main(String[] args) {
        QuartzTest qt = new QuartzTest();
        try {
            qt.test();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

 代码写得比较简陋,主要是test()方法,大家可以根据自己的实际情况再发挥,例如,如果你是用Web方式改的话,context的获取可以直接从WebApplicationContext中获取。

applicationContext.xml的配置如下:

<bean id="CleanLogJob"
        class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass">
            <value>com.***.***.biz.log.CleanLogJob</value>
        </property>
        <property name="jobDataAsMap">
            <map>
                <entry key="logService">
                    <ref bean="LogService" />
                </entry>
            </map>
        </property>
    </bean>
    <bean id="CleanLogJobTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="CleanLogJob" />
        </property>
        <property name="cronExpression">
            <value>0 0 0 * * ?</value>
        </property>
    </bean>
    <bean id="BatchJobStarting"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="CleanLogJobTrigger" />
            </list>
        </property>
    </bean>

 

分享到:
评论

相关推荐

    spring和quartz的定时器的启动和停止例子

    4. **启动和停止定时器**:在Spring应用启动时,由于配置了`autoStartup="true"`,Quartz定时器会自动启动。若需手动控制,可以使用ApplicationContext获取Scheduler实例并调用其`start()`或`standby()`方法来启动或...

    Spring Quartz如何动态配置时间

    Spring Quartz 动态配置时间 Spring Quartz 是一个功能强大的任务调度框架,广泛应用于 Java 企业级应用程序中。其中一个重要的功能便是动态配置时间,触发相应的任务。在本文中,我们将讨论如何使用 Spring Quartz...

    quartz和spring-quartz

    Spring-Quartz的集成则将这些概念与Spring的IoC(Inversion of Control)容器相结合,提供了更好的依赖注入支持。以下是一些关键点: 1. **Bean集成**: Spring可以自动将Job实例作为Spring Bean管理,这样你就可以...

    定时器的配置文件(两种方式:springmvc自带定时,Quartz与spring结合的定时)

    本篇文章将详细讲解两种在Spring MVC框架中实现定时任务的方法:Spring MVC自带的定时器以及Quartz与Spring的集成。 首先,我们来看看Spring MVC自带的定时任务。Spring MVC作为Spring框架的一个模块,主要处理HTTP...

    Quartz+Spring定时触发器例子

    对于初学者来说,这个示例项目提供了一个很好的起点,你可以通过阅读源码了解如何配置和使用Quartz与Spring的结合。同时,注释的完整性将帮助理解各个部分的功能和用途。 学习这个例子,你将掌握以下知识点: - ...

    Quartz与Spring整合练习源代码

    将Quartz与Spring整合,可以方便地管理和控制定时任务,同时利用Spring的依赖注入和管理功能,提高代码的可维护性和可测试性。 Quartz的核心概念包括Job、Trigger和Scheduler。Job是实际需要执行的任务,Trigger是...

    quartz与spring

    总的来说,Quartz与Spring的结合使用可以充分利用两者的优点,实现灵活、可靠且易于管理的任务调度。通过Spring的容器管理和依赖注入,我们可以更方便地定义、配置和控制Quartz任务,同时在集群环境中保证任务调度的...

    spring quartz 时间调用框架

    **Spring Quartz时间调用框架详解** Spring Quartz是一个在Spring框架中集成的时间调度插件,它允许开发者方便地创建和管理定时任务。Quartz是Java领域的一款功能强大的作业调度库,而Spring通过其优秀的IoC...

    spring2与quartz在Web整合

    4. **Web 应用集成**:在 Web 应用中,通常会将 Quartz 的 Scheduler 初始化为一个 ServletContextListener,这样在 Web 应用启动时就会自动启动 Scheduler。同时,为了确保在应用关闭时能够停止所有调度,也需要在 ...

    SpringQuartz的使用文档

    总的来说,SpringQuartz结合了Quartz的强大功能和Spring的灵活性,使开发者能够轻松地在应用程序中实现复杂或简单的定时任务调度。通过这种方式,开发人员可以专注于编写业务逻辑,而不用过多关心任务如何被调度和...

    Quartz+spring定时任务demo

    在 "Quartz+spring定时任务demo" 中,我们首先需要了解如何配置和集成 Quartz 与 Spring。这通常包括以下步骤: 1. **引入依赖**:在项目中添加 Quartz 和 Spring 相关的 jar 包。描述中提到的 "1128266338845696....

    spring+quartz动态设置定时时间

    本篇文章将深入探讨如何在Spring与Quartz结合的环境中动态设置定时时间。 首先,Spring框架提供了方便的依赖注入和AOP(面向切面编程)功能,使得集成其他库变得更加容易。Quartz是一个强大的作业调度框架,它可以...

    quartz2 与spring4 集成 定时任务Job

    5. **关联Job与Trigger**:在SchedulerFactoryBean的配置中,你需要将JobDetail与Trigger关联起来,告诉Quartz何时以及如何运行哪个Job。 6. **启动Scheduler**:在Spring的初始化阶段,SchedulerFactoryBean会自动...

    spring+quartz demo

    Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...

    Quartz + spring的开发步骤

    在 Spring 应用启动时,`SchedulerFactoryBean` 会自动启动 Quartz Scheduler。如果需要手动控制任务的暂停、恢复或删除,可以通过 Spring 注入 `Scheduler` 实例来操作。 总之,Quartz + Spring 的结合为 Java ...

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

    6. 启动Scheduler:在Spring应用启动时,调用`Scheduler.start()`启动定时任务执行。 对于动态定时任务,Quartz提供了一种灵活的方式,允许在运行时添加、修改或删除任务。例如,可以创建一个服务接口,通过调用该...

    Quartz集群+spring data

    6. 在Spring启动时,通过`Scheduler.start()`启动调度器,让任务开始运行。 至于博文链接中的内容,虽然无法直接查看,但通常会包含如何在实际项目中设置Quartz集群和Spring Data集成的详细步骤,包括配置示例、...

    quartz2.2.1 spring3.1.1

    例如,你可以创建一个`MyJob`类实现`org.quartz.Job`接口,然后在 Spring 配置文件中声明这个 Job 和相应的 Trigger: ```xml &lt;bean id="myJob" class="org.springframework.scheduling.quartz.JobDetailBean"&gt; ...

    Java_Spring与Quartz的整合

    - 在Spring应用启动时,通过`SchedulerFactoryBean`的`start()`方法启动Scheduler,开始监控并执行Job。 5. **动态管理Job** - 由于Spring管理了Quartz,所以可以方便地在运行时添加、删除或修改Job和Trigger,只...

    quartz整合springbatch定时集群实现mysql参考模版

    Quartz和SpringBatch是两种在Java开发中广泛使用的框架,Quartz用于任务调度,而SpringBatch则用于批量处理。在大型分布式系统中,结合这两者可以实现强大的定时任务集群功能,尤其是在需要对大量数据进行定时处理的...

Global site tag (gtag.js) - Google Analytics