`
boddi
  • 浏览: 6245 次
文章分类
社区版块
存档分类
最新评论

Spring基于java.util.Timer提供的任务调度能否设置动态定时任务

阅读更多
由客户制定每次定时任务的间隔时间,我现在想用Timer提供的任务调度来实现,不知能否实现?如何实现?
分享到:
评论
1 楼 boddi 2007-08-11  
终于找到了解决方法了:
是这样的,客户有个需求是可以自己修改任务的间隔时间的!(这个值是设置到数据库中的),因为SimpleTriggerBean必须设置repeatInterval属性,所以设置其一个默认值

配置如下:
    <bean id="ScheduleAction" class="com.server.business.cms.ScheduleAction">          
        <property name="scheduler" ref="schedulerFactory"/>      
    </bean> 
     
    <bean id="ScheduleEngineFactory" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
        <property name="targetObject" ref="SchedulerEngine"/> 
        <property name="targetMethod"> 
             <value>run</value> 
        </property> 
        <property name="concurrent" value="false"/> 
    </bean> 
     
    <bean id="ScheduleActionTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">          
        <property name="jobDetail"> 
            <ref bean="ScheduleEngineFactory"></ref> 
        </property>     
        <property name="startDelay"> 
            <value>80000</value> 
        </property> 
        <property name="repeatInterval"> 
            <value>80000</value> 
        </property> 
    </bean> 
     
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">          
        <property name="triggers">              
            <list>             
                <ref bean="ScheduleActionTrigger"/>              
            </list>          
        </property> 
    </bean>


把schedulerFactory注入ScheduleInfoAction,
这样每次需要修改间隔时间时,就可以通过ScheduleInfoAction接口的scheduler设置间隔时间了,
但总感觉到有点笨拙,现在必须在程序启动时通过ScheduleInfoAction的scheduler设置数据库中的间隔时间,为什么repeatInterval不能通过继承SimpleTriggerBean复写getRepeatInterval方法去设置呢?

相关推荐

    JAVA定时任务调度

    在Java中,我们可以使用多种方式来实现定时任务,如Java内置的`java.util.Timer`类、`java.util.concurrent.ScheduledExecutorService`,以及更强大的第三方库如Quartz Scheduler和Spring框架中的`@Scheduled`注解等...

    java定时任务调度

    在Java中,有多种实现定时任务调度的方式,包括但不限于Java内置的`java.util.Timer`类、Spring框架的`@Scheduled`注解以及Quartz库。 1. **Java内置的`java.util.Timer`和`TimerTask`**: - `Timer`类用于创建一...

    java 定时任务及jar包

    以上就是关于Java定时任务的一些基本知识点,包括`java.util.Timer`、`ScheduledExecutorService`以及Spring框架下的定时任务实现方式。了解这些内容后,你可以根据项目需求灵活地创建和管理定时任务。

    Quartz--JAVA定时任务\Java应用:Java调度任务和Spring Quartz (1)

    在JDK 1.3及以后的版本中,`java.util.Timer`类提供了基础的定时任务支持。不过,`Timer`类的功能相对有限,无法精确地在特定时间点执行任务,比如设置每天特定时间执行的任务。 Quartz是一个强大且灵活的开源作业...

    Spring的定时任务开发及对Quartz和Timer支持

    另一方面,`java.util.Timer`是Java标准库中的一个简单定时任务工具,适用于简单的定时任务需求。Spring通过`org.springframework.scheduling.timer.TimerTaskExecutor`支持了Timer的使用。不过,由于Timer的线程...

    定时任务(java)

    首先,Java内置了`java.util.Timer`和`java.util.TimerTask`类,它们提供了基本的定时任务功能。`Timer`类用于创建一个定时器,而`TimerTask`是可调度的任务类,继承自它即可定义需要定时执行的任务。以下是一个简单...

    Java定时执行任务的三种方法

    本文将详细介绍Java中三种常见的定时任务实现方式:`java.util.Timer`、`ServletContextListener`以及Spring框架中的`ScheduledTimerTask`。 1. **java.util.Timer** `java.util.Timer`类是最基础的定时任务工具,...

    spring timer、quartz俩种任务调度

    `Spring Timer`是Spring框架提供的一个简单任务调度工具,它基于Java的`java.util.Timer`类。通过`@Scheduled`注解,开发者可以在Spring应用上下文中声明一个方法为定时任务。例如: ```java import org.spring...

    spring定时任务实现

    本文主要探讨了Spring中实现定时任务的三种主要方法:Java的`java.util.Timer`、Quartz库以及Spring自身的Task调度器。 首先,Java的`java.util.Timer`是一个基础的定时任务工具,它可以按照设定的频率执行任务,但...

    小码农的代码(四)----------JAVA中Timer定时器与Spring定时任务

    在Java编程语言中,`Timer`类和Spring框架的定时任务是两种常见的实现定时执行任务的方式。本篇文章将深入探讨这两个主题,旨在帮助初学者理解它们的工作原理以及如何在实际项目中应用。 首先,让我们来看一下Java...

    spring定时.txt

    Spring 框架提供了多种方式来实现定时任务,其中一种常见的做法是利用 `java.util.Timer` 类来实现基本的定时任务功能。此外,对于更复杂的场景,通常会推荐使用 Quartz 这样的第三方库。 ##### Java.util.Timer `...

    java写定时任务,定时任务、定时器详细示例

    在Java中,`java.util.Timer`类提供了调度定时任务的功能,而`java.util.TimerTask`则是执行这些任务的具体载体。两者结合,可以灵活地安排任务的执行时间、频率以及执行条件。 #### TimerTask类 `TimerTask`是一...

    java定时任务小例子

    在`TimerTest.java`中,可能会包含一个`main`方法,这个方法会实例化`Timer`对象,并通过`schedule`或`scheduleAtFixedRate`方法设置定时任务。例如: ```java import java.util.Timer; import java.util.TimerTask...

    java,javaweb,spring定时器

    在Java世界里,我们有多种实现定时任务的方式,包括Java内置的`java.util.Timer`类和`java.util.concurrent.ScheduledExecutorService`接口。在Web应用中,例如在Java Web项目中,我们可以利用Servlet容器的特性或者...

    Spring 框架自带定时任务和Quartz定时任务

    首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类负责安排在后台线程上的TimerTask任务的执行。TimerTask是一个抽象类,我们需要创建它的一个子类,并重写run方法来...

    java定时任务开源案例

    在Java世界里,实现定时任务的方式多种多样,包括但不限于使用Java内置的`java.util.Timer`和`java.util.concurrent.ScheduledExecutorService`,以及更流行的开源库如Quartz和Spring Scheduler。下面我们将深入探讨...

    Spring使用timer定时器-能精确几点运行定时任务

    `java.util.Timer`和`java.util.TimerTask`是Java中的两个类,用于调度未来任务的执行。`Timer`负责安排任务,而`TimerTask`则表示要执行的具体任务。它们一起工作,可以实现周期性或者一次性任务的调度。 在Spring...

    Java关于时间调度的几种实现方(Timer Quartz Spring)

    本篇文章将深入探讨Java中的三种主要时间调度实现:`Timer`、`TimerTask`、以及第三方库`Quartz`和`Spring`的定时任务功能。 ### 1. Java `Timer` 和 `TimerTask` `java.util.Timer` 类提供了一个调度任务的方法,...

Global site tag (gtag.js) - Google Analytics