`

定时任务(Timer)

    博客分类:
  • j2se
 
阅读更多


  一、延时执行
  首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。代码如下:
  package test;
  import java.util.Timer;
  public class TimeTask {
  public static void main(String[] args){
  Timer timer = new Timer();
  timer.schedule(new Task(), 60 * 1000);
  }
  }
  解释一下上面的代码。
  上面的代码实现了这样一个功能,当TimeTask程序启动以后,过一分钟后执行某项任务。很简单吧:先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型的毫秒数(看来java里涉及到时间的,跟这个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)

分享到:
评论

相关推荐

    【PHP定时任务】基于thinkphp定时任务计划任务.zip

    【PHP定时任务】基于thinkphp定时任务计划任务.zip 【PHP定时任务】基于thinkphp定时任务计划任务.zip 【PHP定时任务】基于thinkphp定时任务计划任务.zip 【PHP定时任务】基于thinkphp定时任务计划任务.zip 【PHP...

    java轻松实现—定时任务

    在Java中,我们可以利用`java.util.Timer`类和`java.util.TimerTask`类来实现简单的定时任务,但这种实现方式存在线程安全问题。在Web应用中,我们可以利用Servlet容器提供的特性来更优雅地处理定时任务,这就是描述...

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

    Spring提供了多种方式来实现定时任务,其中之一就是使用`Timer`。`Timer`接口源自Java标准库,但在Spring中,我们可以结合它来创建更加灵活的定时任务。本教程将详细介绍如何在Spring中使用`Timer`来实现能精确到几...

    定时任务Timer使用

    NULL 博文链接:https://luan.iteye.com/blog/1838132

    基于thinkphp框架的定时器(定时执行任务)

    除了Cron,还可以使用第三方定时任务库如`EasySwoole`或`Workerman`,它们提供了更丰富的定时任务管理功能,并且可以在无需Cron的情况下运行。 五、注意事项 - 定时任务的执行效率和稳定性至关重要,因此要确保任务...

    java定时任务调度之Timer 简单示例

    `Timer`类是Java中用于实现定时任务调度的一个基础工具,它位于`java.util`包中。在本文中,我们将深入探讨`Timer`类的基本使用和示例,帮助你理解如何在Java程序中实现简单的定时任务。 首先,`Timer`类提供了计划...

    java定时任务Timer和TimerTask使用详解

    总结起来,`Timer` 和 `TimerTask` 提供了一种简单的方式在Java中实现定时任务,无论是单次执行还是周期性执行,都能方便地进行调度。但需要注意的是,由于 `Timer` 是基于单线程模型的,如果一个 `TimerTask` 执行...

    Timer定时任务

    《Timer定时任务详解》 在计算机编程中,定时任务是一项重要的功能,它允许程序在特定的时间间隔或预定的时间点执行特定的操作。Java中的`java.util.Timer`类和`java.util.TimerTask`类为我们提供了实现定时任务的...

    C# 用Timer实现定时任务程序

    C# 用Timer实现定时任务程序 初学者参考使用

    python定时任务.docx

    Python定时任务是编程中常见的一种需求,用于在特定时间点执行特定...而`threading.Timer`则允许在独立的线程中并发执行定时任务,适用于需要避免阻塞的场景。根据实际需求,开发者可以选择合适的方法来实现定时任务。

    java定时任务,每天定时执行任务

    Java 定时任务是指在 Java 语言中实现的定时执行任务的机制,通过使用 Timer 和 TimerTask 两个类,可以实现定时执行任务的功能。在这个例子中,我们将实现每天定时执行任务的功能,具体来说,就是在每天的凌晨 2 点...

    tp(worder_timer)定时任务,访问url_thinkphp_定时任务_TP_

    ThinkPHP是一个广受欢迎的PHP框架,而"tp(worder_timer)定时任务,访问url_thinkphp_定时任务_TP_"则涉及到在ThinkPHP框架下实现定时任务的功能。下面我们将详细探讨这个主题。 一、ThinkPHP框架 ThinkPHP(简称TP...

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

    在【标题】"Spring的定时任务开发及对Quartz和Timer支持"中,涉及到的是Spring在处理定时任务方面的特性,这在企业级应用中非常常见,用于执行一些周期性的后台任务,如数据同步、报表生成、清理任务等。 首先,...

    C#实现的自定义定时任务 可定时运行 多任务运行

    在IT领域,尤其是在软件开发中,定时任务是一个非常常见的需求,它允许程序按照预定的时间间隔执行特定的操作。本文将深入探讨如何使用C#语言来实现一个自定义的定时任务系统,支持多任务运行,以便更好地满足开发中...

    Web Servlet定时器

    此外,标签中的“timer”和“servlet定时器”都指的是这种通过Servlet实现的定时任务机制,而“ScheduledExecutorService”是Java并发库中另一种强大的定时任务工具,它可以提供更灵活的定时策略和线程池管理。...

    Java里timer执行定时任务

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

    C#定时任务winfrom

    "C#定时任务winform"是指使用C#语言构建的基于Windows Forms(WinForm)的应用程序,该应用具有定时执行任务的功能。这通常涉及到System.Timers.Timer或System.Threading.Timer类的使用,它们允许开发者在特定时间...

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

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

    asp.net定时任务(定时器)

    ASP.NET定时任务通常基于`System.Threading.Timer`类或者`System.Timers.Timer`类来实现。这两个类都提供了周期性触发事件的能力。在ASP.NET中,我们可以创建一个后台线程或使用`HttpApplication`的生命周期事件来...

    Tomcat的定时任务(计时器)

    本文将深入探讨如何在Tomcat中实现定时任务,主要涉及的知识点包括Java的定时器(Timer)和Spring框架的TaskScheduler。 首先,让我们了解一下Java中的定时任务。在Java标准库中,有一个名为`java.util.Timer`的类...

Global site tag (gtag.js) - Google Analytics