`
ollevere
  • 浏览: 265726 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA 定时器

 
阅读更多

http://apps.hi.baidu.com/share/detail/33720498 (各种定时器)

 

本文主要使用 Spring ,Quartz 来简单的实现一个定点执行的定时任务。

 

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,可以用来创建简单或者复杂的定时任务

Timer方式实现定时器,原理简单,实现方便,在执行简单的任务比较方便,不足之处是无法确定执行时间,并且依赖性比较强,必须继承指定的类.

Quartz方式实现定时器,方便,清晰指定启动时间,定时参数比较灵活,容易实现比较复杂的定时任务,不足之处是需要实现特定接口,加载其框架

两种方式各有优缺点,在特定场合可以根据其特点选择使用。

 

 

Spring定时任务对Timer与Quartz都提供了支持,并且实现步骤基本一样

 

 

下面是一个Spring Quartz 实例:

一.创建一个定时任务类:HKHotelSourceMapJob

<!--EndFragment-->

public class HKHotelSourceMapJob {
     protected static Log log = LogFactory.getLog(HKHotelSourceMapJob.class);
     private HotelSourceMapFacade hotelSourceMapFacade;
	
     public void run() {
	Set<String> allHotelSourceMap = hotelSourceMapFacade.getAllHotelSourceMap(); //查询本地配置的所有映射关系
	Set<String> hkRoomKindSet = hotelSourceMapFacade.getHkRoomKind(new Date(), new Date()); // 查询中旅酒店当天的有效房型
	updateHotelSourceMapSet(hkRoomKindSet, "Y");//有效房型
	log.info(new Date() + "有效的房型:"+ hkRoomKindSet);
		
	allHotelSourceMap.removeAll(hkRoomKindSet); //所有映射 - 有效房型映射 = 无效房型映射
	updateHotelSourceMapSet(allHotelSourceMap, "N");//无效房型
	log.info(new Date() + "有效的房型:"+ allHotelSourceMap);
		
     }
}

  

二.定义一个Spring 配置文件 appContext-assistant-Timer.xml 

<!--EndFragment-->

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans> 
    <!-- 中旅同步映射定时器 start -->
    <bean id="hkHotelSourceMapFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
         <property name="triggers">
	 <list>
                      <ref bean="hkHotelSourceMapJobTrigger" />		
	 </list>
          </property>
      </bean>
      <bean id="hkHotelSourceMapJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
	<property name="jobDetail" ref="hkHotelSourceMapJobDetail">
	</property>
	<property name="cronExpression">
	               <!--每天2点10分,11点10分触发 -->
	               <value>0 10 2,16 * * ?</value>
	</property>
        </bean>
        <bean id="hkHotelSourceMapJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
	<property name="targetObject" ref="hkHotelSourceMapJob" />
	       <property name="targetMethod" value="run" />
          </bean>
          <!-- 中旅同步映射定时器 end -->    
          <bean id="hkHotelSourceMapJob" class="com.ctol.mango.pge.common.HKHotelSourceMapJob">
     	<property name="hotelSourceMapFacade" ref="hotelSourceMapFacade" />			
           </bean>
</beans>

 

三.让容器启动时自动加载配置文件 appContext-assistant-Timer.xml: 

web.xml 中加入:

<!--EndFragment-->
<context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>
          /WEB-INF/conf/spring/appContext-assistant-Timer.xml
	.....(其他需要加载的配置文件,已逗号分隔)
     </param-value>
 </context-param>

 

通过以上3个步骤就完成了一个简单的定时任务, 在每天的210分,1610分定时同步数据。

<!--EndFragment-->

<!--EndFragment-->

 

 

<!--EndFragment-->

<!--EndFragment-->

<!--EndFragment-->

 

<!--EndFragment-->
分享到:
评论

相关推荐

    Java定时器

    Java定时器是Java编程语言中用于执行特定任务的调度工具,它允许程序员在指定的时间间隔后执行特定的代码块或任务。在Java中,我们主要使用`java.util.Timer`类和`java.util.TimerTask`类来实现定时器功能。这两个类...

    Java定时器的使用 Java程序

    Java定时器(java.util.Timer)是Java标准库中用于调度任务执行的重要工具,它允许我们按照预设的时间间隔执行特定的任务。在Java程序设计中,定时器常常用于实现周期性的任务,比如定时备份数据、定时检查系统状态...

    JAVA定时器JAVA定时器

    JAVA定时器,只要服务开启,就能指定某些代码在某个时刻执行,例如:监狱里罪犯的余刑天数,每天都要减少,就可以设置一个定时器在每天的23:59:59来执行减少余刑天数的天。

    java定时器

    java定时器,import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; 规定每天几点执行一次

    Java定时器框架(Quartz)

    Java定时器框架Quartz是Java开发中用于任务调度的一个强大工具,它允许开发者精确地控制任务的执行时间,包括一次性任务和周期性任务。Quartz以其灵活性和稳定性,在企业级应用中广泛使用,尤其在需要定期执行后台...

    JAVA定时器JAVA定时器.pdf

    JAVA定时器 JAVA定时器是一种基于Quartz框架的任务调度器,用于在指定的时间执行特定的任务。在 Spring 框架中,JAVA定时器可以与Quartz框架集成,实现自动执行任务的功能。 1. JAVA定时器的基本概念 JAVA定时器...

    java 定时器(Timer)

    Java定时器(Timer)是Java Swing库中的一个类,它提供了调度任务在未来某个时间执行的能力。这个类主要用于在GUI应用程序中实现定时触发某些操作,比如更新界面、执行动画或者执行周期性的后台任务。Timer类结合了...

    Java定时器简例

    ### Java定时器实现详解 在Java编程中,定时任务是常见的需求之一,无论是服务器的定期维护、数据同步,还是客户端的动画更新等场景,都需要用到定时器来精确控制任务的执行时间。本文将深入解析一个基于Java的简单...

    java定时器设置及停止的方法

    在Java编程中,定时任务是不可或缺的一部分,它们用于执行周期性操作,如数据备份、监控、清理等。本文将深入探讨如何在Java中设置和停止定时任务,主要关注`java.util.Timer`和`java.util.TimerTask`,以及更现代的...

    java定时器的使用

    在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。 对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。

    java 定时器 spring 定时器

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

    java定时器.rar

    Java定时器(Timer)是Java语言中用于调度任务的一个重要工具,它可以帮助我们在特定时间执行一次或重复执行某个任务。这个“java定时器.rar”压缩包可能包含了关于如何使用Java定时器的相关示例代码和教程。 Java...

    java定时器服务!!

    Java定时器服务是Java平台中用于执行定时任务的关键组件,它允许开发者安排未来或定期的任务执行。在Java中,我们通常使用`java.util.Timer`类和`java.util.TimerTask`类来实现定时服务。这两个类提供了创建、调度和...

    简单易用的java定时器scheduler,有完整配置说明

    Java定时器,通常被称为Scheduler,是Java开发中用于执行定期任务的重要工具。它允许开发者在特定的时间间隔或者按照预设的计划执行代码,这在处理数据同步、日志清理、发送通知等场景中非常常见。在Java中,我们...

    JAVA定时器时间抓取

    Java定时器和时间处理是Java开发中的重要组成部分,特别是在需要执行周期性任务或者对时间有精确控制的应用场景中。本文将深入探讨Java定时器(Timer)的使用以及如何获取和处理年月日、时间节点等时间相关的信息。 ...

    java定时器(timer类使用详解)

    Java定时器,也被称为`Timer`类,是Java标准库中的一个强大工具,它允许开发者在指定的时间间隔执行任务,从而实现定时操作。这个类在`java.util`包中定义,是实现定时任务调度的核心。在本文中,我们将深入探讨`...

    Java定时器数字时钟

    Java定时器数字时钟是一种基于Java编程语言实现的软件,它可以模拟系统时间并实时更新显示。这个程序是在Eclipse 7.5集成开发环境中编写的,Eclipse是Java开发者广泛使用的IDE,它提供了丰富的功能,如代码编辑、...

    Java定时器Timer简述共8页.pdf.zip

    Java定时器(Timer)是Java语言提供的一种用于执行定时任务的工具类,它位于java.util包下。在Java编程中,我们有时需要在特定的时间间隔内执行某些操作,例如每隔一段时间更新数据、发送通知或者执行定期维护等。这...

Global site tag (gtag.js) - Google Analytics