`

java - 定时任务 - Timer/TimerTask-Quartz

    博客分类:
  • java
 
阅读更多

1. 用Timer类设置定时任务.

        ●  延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。

        代码如下:
        package test;
        import java.util.Timer;
        public class TimeTaskTest {
           public static void main(String[] args){

              Timer timer = new Timer(); 
              timer.schedule(new Task(), 60 * 1000);
            }
        }

        上面的代码实现了这样一个功能,当TimeTaskTest程序启动以后,过一分钟后执行某项任务。

        很简单吧:先new一个Timer对象,然后调用它的schedule方法,这个方法有四个重载的方法,这里我们用其中一个,
        public void schedule(TimerTask task,long delay) - 从程序开始以后,再过多少时间来执行定时任务
        首先,第一个参数第一个参数就是我们要执行的任务。这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类。上面的代码里面,Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来。

        Task类的代码如下
        package test;
        import java.util.TimerTask;
        public class Task extends TimerTask {

           public void run()
          {
            System.out.println("定时任务执行");
          }

        }
        我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面,这里,我们只让它往控制台打一行字。

         第二个参数是一个long型的值。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000。

 

        ●  循环执行设置定时任务的时候,往往我们需要重复的执行这样任务,每隔一段时间执行一次,而上面的方法是只执行一次的,这样就用到了schedule方法的是另一个重载函数

public void schedule(TimerTask task,long delay,long period)
前两个参数就不用说什么了,最后一个参数就是间隔的时间,又是个long型的毫秒数。比如我们希望上面的任务从第一次执行后,每个一分钟执行一次,第三个参数值赋60 * 1000就ok了。

 

        ●  指定执行时间既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少。没关系,schedule四个重载的方法还没用完呢。用下面这个就OK了:
public void schedule(TimerTask task,Date time)
比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了。有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了。schedule最后一个重载的方法是public void schedule(TimerTask task,Date firstTime,long period)

       ●  j2ee中的定时任务在实际的项目中,往往定时任务需要对web工程中的资源进行操作,这样一来,用上面的单个程序的方式可能就有点力不从心了,因为很多web工程的资源它操作不到。解决的办法是,使用Servlet,把执行定时任务的那些代码放到Servlet的init()函数里就可以了。

来自:http://zhidao.baidu.com/question/83065736

 

 

 

Timer类的常用其他方法:

 

cancel()
终止此计时器,丢弃所有当前已安排的任务。

 

purge()
从此计时器的任务队列中移除所有已取消的任务。

 

schedule(TimerTask task, Date time)
安排在指定的时间执行指定的任务。

 

 

 

TimerTask类的常用其他方法:

 

cancel()
取消此计时器任务。

 

run()
此计时器任务要执行的操作。

 

scheduledExecutionTime()
返回此任务最近实际 执行的已安排 执行时间。http://blog.csdn.net/kalision/article/details/7692796

 

 

 

2. 定时任务框架 - Quartz

        http://blog.csdn.net/yuebinghaoyuan/article/details/9045471

        http://www.blogjava.net/baoyaer/articles/155645.html

 

分享到:
评论

相关推荐

    java定时执行多任务和quartz定时执行多任务

    Java提供了一些内置的定时工具,如`java.util.Timer`和`java.util.concurrent.ScheduledExecutorService`,但它们在处理复杂定时任务时可能会显得力不从心。在这种情况下,第三方库Quartz就显得尤为出色。 1. **...

    Java 定时任务及作业调度 Quartz与Timer

    Java定时任务和作业调度在软件...总的来说,理解并掌握Java的定时任务和作业调度,无论是Quartz还是Timer,都是提升开发效率和系统自动化能力的重要技能。通过实践和不断探索,可以更好地利用这些工具为项目带来便利。

    java定时任务调度

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

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

    本文将深入探讨如何使用Java标准库中的`java.util.Timer`和`java.util.TimerTask`来实现定时任务。 ### 原理详解 在Java中,`java.util.Timer`类提供了调度定时任务的功能,而`java.util.TimerTask`则是执行这些...

    Timer、Quartz定时详细分析与代码实例

    在Java世界中,实现定时任务有多种方式,其中最常见的是JDK自带的Timer和Spring集成的Quartz框架。本文将深入剖析这两种定时器的特点、优缺点以及代码实例。 一、JDK的Timer Timer是Java标准库中的一个类,它提供...

    java定时任务的实现方式

    本文将详细介绍两种常用的Java定时任务实现方式:Timer类和Spring框架的Quartz调度器。 首先,第一种方式是使用Java内置的`Timer`类。`Timer`类提供了定时任务调度的功能,可以按照预设的时间间隔执行任务。在提供...

    JAVA定时任务调度

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

    java 定时执行任务

    `Timer`类是Java早期提供的定时任务实现,它允许我们创建一个定时器对象,然后调度`TimerTask`任务来执行。以下是如何使用`Timer`和`TimerTask`的基本步骤: ```java import java.util.*; class TimerTaskDemo ...

    java定时任务小例子

    `Timer`和`TimerTask`是Java基础库提供的简单定时解决方案,但它们并不适合复杂的定时需求,比如并发任务管理、精确的时间控制等。对于这些高级需求,开发者通常会使用Quartz、Spring的`@Scheduled`注解或其他第三方...

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

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

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

    虽然`Timer`和`TimerTask`满足了基础的定时需求,但在复杂场景下,如需要更精确的控制、任务间的依赖等,可以考虑使用Quartz或Spring框架的定时任务支持,它们提供了更强大的功能和更灵活的配置。 总的来说,Java的...

    java定时任务

    Java提供了多种实现定时任务的方式,主要包括Java自带的`java.util.Timer`和`TimerTask`类,以及更现代、更灵活的`java.concurrent.ScheduledExecutorService`。此外,Spring框架中的`@Scheduled`注解和Quartz库也是...

    Java里timer执行定时任务

    ### Java里timer执行定时任务 #### 一、延时执行 在Java中,`java.util.Timer` 类提供了创建和管理定时任务的功能。如果需要在特定时间之后执行某个任务,可以利用 `Timer` 类的 `schedule()` 方法。此方法接受一...

    java.util.timer实现的简单定时任务

    Java.util.Timer类是Java标准库提供的一种简单但功能有限的定时任务执行机制。它允许开发者在指定的时间间隔或特定时间点执行任务,非常适合处理一次性或周期性的后台操作。本篇文章将深入探讨如何使用Timer和...

    quartz 和 Timer实现定时功能

    `Quartz`和`Timer`都是Java中实现定时任务的工具,各有特点和适用场景。 `Timer`是Java标准库中的类,位于`java.util`包下,提供了定时任务的基本功能。`Timer`创建一个后台线程,可以安排单次或周期性的任务执行。...

    定时任务(java)

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

    timerTask定时任务使用java代码操作svn

    这个定时任务系统是基于`java.util.Timer`类构建的,它允许开发者在指定的时间间隔执行重复或一次性任务。在本项目中,`TimerTask`被用来自动化创建文件夹,并通过Java代码直接与Subversion(SVN)进行交互,从而...

    Spring的quartz和Timer实现定时

    在Java世界中,任务调度是十分重要的,Spring框架提供了多种定时任务实现方式,其中包括Quartz和Timer。Quartz是一款开源的作业调度框架,而Timer是Java标准库中的一个类,用于执行定时任务。这两个工具都能帮助...

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

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

    java每天实现定点执行任务

    要完成这样的功能,我们通常会利用Java的定时任务框架,如`java.util.Timer`类、`java.util.concurrent.ScheduledExecutorService`或者更高级的Quartz库。以下将详细介绍如何使用这些方法来实现每日定时任务。 1. *...

Global site tag (gtag.js) - Google Analytics