`

spring 定时器-两种方式

阅读更多
方式一:
间隔一定时间 运行

<bean id="updateSessionIdTask" class="com.yang.iprms.common.UpdateSessionTask" autowire="byName" />

<bean id="updateSessionIdScheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="delay" value="20" />
<property name="period" value="60000" />
<property name="timerTask">
<ref local="updateSessionIdTask" />
</property>
</bean>

<bean id="updateSessionIdTimer" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref local="updateSessionIdScheduledTask" />
</list>
</property>
</bean>

java文件:

import java.util.TimerTask;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;


public class UpdateSessionTask extends TimerTask{

private Logger logger = Logger.getLogger(UpdateSessionTask.class);

@Autowired
IRecordService recordService;

@Override
public void run() {
try
{        
logger.info("进入定时更新未匹配录音数据");
       
       
        if (recordService == null)
      {
        logger.info("recordService == null");
      this.InitRecordService();
      }
          recordService.updateSessionList();     
}
catch(Exception exp)
{
logger.error("定时更新未匹配录音数据,异常");
exp.printStackTrace();
}

}

方式二: 指定corn时间运行

<bean id="recordFtpJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.yang.iprms.recordftp.task.RecordFtpTimerTask">
</property>
</bean>

<bean id="cronReportTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="recordFtpJob" />
<property name="cronExpression">
<value>0 0 11,12 * * ?</value>
</property>
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
       <list><ref bean="cronReportTrigger"/></list>
    </property>
</bean>

11 点和 12点运行一次

java

import org.apache.log4j.Logger;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

import com.channelsoft.xframe.utils.BeanFactoryUtil;


public class RecordFtpTimerTask extends QuartzJobBean{

/**
*
*/
private static final long serialVersionUID = 112212L;

private Logger logger = Logger.getLogger(this.getClass());

IRecordFtpService recordFtpService;

protected void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
try
{        
logger.info("进入定时上传语音文件数据");

       
        if (recordFtpService == null)
      {
        logger.info("recordService == null");
        recordFtpService = (IRecordFtpService)(BeanFactoryUtil.getBean("recordFtpService"));
      }
        recordFtpService.uploadWav();     
}
catch(Exception exp)
{
logger.error("定时更新未匹配录音数据,异常");
exp.printStackTrace();
}
}

//方式二 需要 jta-1.1.jar 和quartz-1.6.0.jar
分享到:
评论

相关推荐

    spring定时器--代码解读

    总结来说,Spring定时器提供了两种方式来创建和执行定时任务:基于Timer的简单定时任务和基于Quartz的高级定时任务。Timer适用于简单的定时需求,而Quartz更适合需要精确控制任务执行时间和周期的复杂场景。在实际...

    spring定时器-quartz开发的步骤

    首先,理解Spring定时器的基础概念。Spring提供了两种定时任务框架:`java.util.Timer`和`@Scheduled`注解。然而,对于复杂的企业级应用,Quartz更具有优势,因为它支持集群、灵活的调度策略和丰富的API。 1. **...

    spring 定时器的两种实现

    在Spring框架中,有两种主要的方法来实现定时任务:Spring自带的`@Scheduled`注解和引入第三方库Quartz。这两种方法都可以帮助开发者在特定的时间点执行任务,为应用程序添加计划任务的能力。 首先,我们来看看使用...

    spring学习系列 -- 定时器三 两种定时器的比较

    本文将深入探讨Spring提供的两种定时器——`Quartz`和`Spring Task`,并进行对比分析。 首先,让我们了解`Quartz`。Quartz是一个开源的作业调度框架,它允许应用程序在指定的时间执行任务。Quartz提供了丰富的API,...

    spring定时器两种实现方式

    Spring 定时器两种实现方式 Spring 定时器是 Spring 框架中的一种组件,用于实现定时任务的执行。它提供了两种实现方式:Java Timer 定时和 Quartz 定时器。在本文中,我们将详细介绍这两种实现方式的原理、优点和...

    spring定时器 Spring定时器的两种实现方式Java的Timer类和OpenSymphony的Quartz。

    Spring框架提供了两种方式来处理定时任务:Java内置的`Timer`类和第三方库OpenSymphony的Quartz。下面将详细介绍这两种实现方式。 ### 1. Java `Timer` 类 Java `java.util.Timer` 类是Java标准库中的一个轻量级...

    java 定时器 spring 定时器

    Java定时器和Spring定时器是Java开发中用于执行周期性任务的重要工具,它们在系统维护、数据同步、报告生成等场景中发挥着关键作用。本文将深入探讨这两个概念,以及如何在Spring框架中配置和使用定时器。 首先,...

    Spring定时器的两种实现方式.doc

    在Spring框架中,定时任务的实现通常有多种方式,这里主要讨论的是两种常见的方式:Java Timer和Quartz定时器。这两种方法都有其特点和适用场景,开发者可以根据项目需求来选择。 1. **Java Timer定时器** Java ...

    SPRING 定时器的使用

    在Spring框架中,实现定时任务有两种主流方式:使用`java.util.Timer`类或集成第三方库如Quartz。这两种方法各有优势: - **Java Timer**:简单易用,适合简单的定时任务需求。 - **Quartz**:功能强大且灵活,支持...

    JAVA中 Spring定时器的两种实现方式

    在Java的Spring框架中,定时任务的实现有多种方式,其中两种常见的实现是基于Java的`Timer`类和OpenSymphony的`Quartz`库。这两种定时器在Spring中的使用和配置有所不同,各有优缺点,适合不同的应用场景。 1. **...

    spring定时器(内含TimerTask实现和Quartz实现两种方式)

    本篇文章将详细探讨两种实现Spring定时任务的方法:基于Java内置的`TimerTask`和第三方库Quartz Scheduler。 首先,让我们看看如何使用`TimerTask`来实现Spring中的定时任务。`TimerTask`是Java的标准库类,它提供...

    springAop与spring定时器

    在Spring中,AOP的实现主要有两种方式:基于代理的AOP(Proxy-based AOP)和基于字节码的AOP(Bytecode-based AOP)。基于代理的AOP主要使用JDK动态代理或CGLIB库来创建代理对象,而基于字节码的AOP则使用AspectJ库...

    spring定时器的包和配置文件

    Spring定时器基于Java的`java.util.Timer`和`java.util.TimerTask`,但更进一步,它支持Quartz和SimpleScheduler这两种强大的定时任务库。Quartz是一个开源的作业调度框架,而SimpleScheduler则内置在Spring中,适用...

    Spring自己的轻量级定时器的两种实现方式

    本篇文章将详细介绍两种使用Spring自身实现轻量级定时器的方法。 方法一:基于`@Scheduled`注解 1. `@Scheduled`注解:这是Spring提供的一个用于声明周期性任务的注解。在Java类中的方法上添加此注解,Spring会...

    spring定时器,定时调用任务配置

    Spring支持两种方式来定义定时任务:一种是使用`@Scheduled`注解,另一种是通过实现`Runnable`接口并注册到`TaskScheduler`。 1. **使用`@Scheduled`注解**: 在你的服务类中,你可以为需要定时执行的方法添加`@...

    关于给springboot添加定时器的两种方式

    这两种方法都可以有效地在Spring Boot中实现定时任务的功能。第一种方法更为常见,因为它允许你在主类中直接启用定时任务功能;而第二种方法则可以让主类保持简洁,适合那些希望将定时任务与业务逻辑分离的场景。...

    Spring定时器配置详解(附demo)

    Spring提供了两种主要的定时任务实现方式:`TaskScheduler`和`TaskExecutor`,以及基于Quartz的`SpringIntegration`模块。其中,`TaskScheduler`和`TaskExecutor`适用于简单的定时任务需求,如间隔执行或周期性执行...

    spring定时器3.0之前和3.0之后以及相应的项目实例

    在提供的压缩包文件中,可能包含了使用上述两种方式实现的项目实例代码,你可以通过这些实例学习如何在不同的Spring版本下配置和使用定时任务。对于初学者来说,理解这些实例有助于深入掌握Spring的定时任务管理,并...

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

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

    JAVA获取当前时间以及JAVA_Spring定时器

    本文将详细介绍两种不同的Java获取当前时间的方法,并进一步探讨如何在Spring框架中实现定时任务。 方法一: Java提供了`java.util.Date`和`java.util.Calendar`类来获取当前时间。在示例代码中,首先创建一个`Date...

Global site tag (gtag.js) - Google Analytics