动态更新的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>
分享到:
相关推荐
4. **启动和停止定时器**:在Spring应用启动时,由于配置了`autoStartup="true"`,Quartz定时器会自动启动。若需手动控制,可以使用ApplicationContext获取Scheduler实例并调用其`start()`或`standby()`方法来启动或...
Spring Quartz 动态配置时间 Spring Quartz 是一个功能强大的任务调度框架,广泛应用于 Java 企业级应用程序中。其中一个重要的功能便是动态配置时间,触发相应的任务。在本文中,我们将讨论如何使用 Spring Quartz...
Spring-Quartz的集成则将这些概念与Spring的IoC(Inversion of Control)容器相结合,提供了更好的依赖注入支持。以下是一些关键点: 1. **Bean集成**: Spring可以自动将Job实例作为Spring Bean管理,这样你就可以...
本篇文章将详细讲解两种在Spring MVC框架中实现定时任务的方法:Spring MVC自带的定时器以及Quartz与Spring的集成。 首先,我们来看看Spring MVC自带的定时任务。Spring MVC作为Spring框架的一个模块,主要处理HTTP...
对于初学者来说,这个示例项目提供了一个很好的起点,你可以通过阅读源码了解如何配置和使用Quartz与Spring的结合。同时,注释的完整性将帮助理解各个部分的功能和用途。 学习这个例子,你将掌握以下知识点: - ...
将Quartz与Spring整合,可以方便地管理和控制定时任务,同时利用Spring的依赖注入和管理功能,提高代码的可维护性和可测试性。 Quartz的核心概念包括Job、Trigger和Scheduler。Job是实际需要执行的任务,Trigger是...
总的来说,Quartz与Spring的结合使用可以充分利用两者的优点,实现灵活、可靠且易于管理的任务调度。通过Spring的容器管理和依赖注入,我们可以更方便地定义、配置和控制Quartz任务,同时在集群环境中保证任务调度的...
**Spring Quartz时间调用框架详解** Spring Quartz是一个在Spring框架中集成的时间调度插件,它允许开发者方便地创建和管理定时任务。Quartz是Java领域的一款功能强大的作业调度库,而Spring通过其优秀的IoC...
4. **Web 应用集成**:在 Web 应用中,通常会将 Quartz 的 Scheduler 初始化为一个 ServletContextListener,这样在 Web 应用启动时就会自动启动 Scheduler。同时,为了确保在应用关闭时能够停止所有调度,也需要在 ...
总的来说,SpringQuartz结合了Quartz的强大功能和Spring的灵活性,使开发者能够轻松地在应用程序中实现复杂或简单的定时任务调度。通过这种方式,开发人员可以专注于编写业务逻辑,而不用过多关心任务如何被调度和...
在 "Quartz+spring定时任务demo" 中,我们首先需要了解如何配置和集成 Quartz 与 Spring。这通常包括以下步骤: 1. **引入依赖**:在项目中添加 Quartz 和 Spring 相关的 jar 包。描述中提到的 "1128266338845696....
本篇文章将深入探讨如何在Spring与Quartz结合的环境中动态设置定时时间。 首先,Spring框架提供了方便的依赖注入和AOP(面向切面编程)功能,使得集成其他库变得更加容易。Quartz是一个强大的作业调度框架,它可以...
5. **关联Job与Trigger**:在SchedulerFactoryBean的配置中,你需要将JobDetail与Trigger关联起来,告诉Quartz何时以及如何运行哪个Job。 6. **启动Scheduler**:在Spring的初始化阶段,SchedulerFactoryBean会自动...
Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...
在 Spring 应用启动时,`SchedulerFactoryBean` 会自动启动 Quartz Scheduler。如果需要手动控制任务的暂停、恢复或删除,可以通过 Spring 注入 `Scheduler` 实例来操作。 总之,Quartz + Spring 的结合为 Java ...
6. 启动Scheduler:在Spring应用启动时,调用`Scheduler.start()`启动定时任务执行。 对于动态定时任务,Quartz提供了一种灵活的方式,允许在运行时添加、修改或删除任务。例如,可以创建一个服务接口,通过调用该...
6. 在Spring启动时,通过`Scheduler.start()`启动调度器,让任务开始运行。 至于博文链接中的内容,虽然无法直接查看,但通常会包含如何在实际项目中设置Quartz集群和Spring Data集成的详细步骤,包括配置示例、...
例如,你可以创建一个`MyJob`类实现`org.quartz.Job`接口,然后在 Spring 配置文件中声明这个 Job 和相应的 Trigger: ```xml <bean id="myJob" class="org.springframework.scheduling.quartz.JobDetailBean"> ...
- 在Spring应用启动时,通过`SchedulerFactoryBean`的`start()`方法启动Scheduler,开始监控并执行Job。 5. **动态管理Job** - 由于Spring管理了Quartz,所以可以方便地在运行时添加、删除或修改Job和Trigger,只...
Quartz和SpringBatch是两种在Java开发中广泛使用的框架,Quartz用于任务调度,而SpringBatch则用于批量处理。在大型分布式系统中,结合这两者可以实现强大的定时任务集群功能,尤其是在需要对大量数据进行定时处理的...