一、延时执行
首先,我们定义一个类,给它取个名字叫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...
在Java中,我们可以利用`java.util.Timer`类和`java.util.TimerTask`类来实现简单的定时任务,但这种实现方式存在线程安全问题。在Web应用中,我们可以利用Servlet容器提供的特性来更优雅地处理定时任务,这就是描述...
Spring提供了多种方式来实现定时任务,其中之一就是使用`Timer`。`Timer`接口源自Java标准库,但在Spring中,我们可以结合它来创建更加灵活的定时任务。本教程将详细介绍如何在Spring中使用`Timer`来实现能精确到几...
NULL 博文链接:https://luan.iteye.com/blog/1838132
除了Cron,还可以使用第三方定时任务库如`EasySwoole`或`Workerman`,它们提供了更丰富的定时任务管理功能,并且可以在无需Cron的情况下运行。 五、注意事项 - 定时任务的执行效率和稳定性至关重要,因此要确保任务...
`Timer`类是Java中用于实现定时任务调度的一个基础工具,它位于`java.util`包中。在本文中,我们将深入探讨`Timer`类的基本使用和示例,帮助你理解如何在Java程序中实现简单的定时任务。 首先,`Timer`类提供了计划...
总结起来,`Timer` 和 `TimerTask` 提供了一种简单的方式在Java中实现定时任务,无论是单次执行还是周期性执行,都能方便地进行调度。但需要注意的是,由于 `Timer` 是基于单线程模型的,如果一个 `TimerTask` 执行...
《Timer定时任务详解》 在计算机编程中,定时任务是一项重要的功能,它允许程序在特定的时间间隔或预定的时间点执行特定的操作。Java中的`java.util.Timer`类和`java.util.TimerTask`类为我们提供了实现定时任务的...
C# 用Timer实现定时任务程序 初学者参考使用
Python定时任务是编程中常见的一种需求,用于在特定时间点执行特定...而`threading.Timer`则允许在独立的线程中并发执行定时任务,适用于需要避免阻塞的场景。根据实际需求,开发者可以选择合适的方法来实现定时任务。
Java 定时任务是指在 Java 语言中实现的定时执行任务的机制,通过使用 Timer 和 TimerTask 两个类,可以实现定时执行任务的功能。在这个例子中,我们将实现每天定时执行任务的功能,具体来说,就是在每天的凌晨 2 点...
ThinkPHP是一个广受欢迎的PHP框架,而"tp(worder_timer)定时任务,访问url_thinkphp_定时任务_TP_"则涉及到在ThinkPHP框架下实现定时任务的功能。下面我们将详细探讨这个主题。 一、ThinkPHP框架 ThinkPHP(简称TP...
在【标题】"Spring的定时任务开发及对Quartz和Timer支持"中,涉及到的是Spring在处理定时任务方面的特性,这在企业级应用中非常常见,用于执行一些周期性的后台任务,如数据同步、报表生成、清理任务等。 首先,...
在IT领域,尤其是在软件开发中,定时任务是一个非常常见的需求,它允许程序按照预定的时间间隔执行特定的操作。本文将深入探讨如何使用C#语言来实现一个自定义的定时任务系统,支持多任务运行,以便更好地满足开发中...
此外,标签中的“timer”和“servlet定时器”都指的是这种通过Servlet实现的定时任务机制,而“ScheduledExecutorService”是Java并发库中另一种强大的定时任务工具,它可以提供更灵活的定时策略和线程池管理。...
### Java里timer执行定时任务 #### 一、延时执行 在Java中,`java.util.Timer` 类提供了创建和管理定时任务的功能。如果需要在特定时间之后执行某个任务,可以利用 `Timer` 类的 `schedule()` 方法。此方法接受一...
"C#定时任务winform"是指使用C#语言构建的基于Windows Forms(WinForm)的应用程序,该应用具有定时执行任务的功能。这通常涉及到System.Timers.Timer或System.Threading.Timer类的使用,它们允许开发者在特定时间...
首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类负责安排在后台线程上的TimerTask任务的执行。TimerTask是一个抽象类,我们需要创建它的一个子类,并重写run方法来...
ASP.NET定时任务通常基于`System.Threading.Timer`类或者`System.Timers.Timer`类来实现。这两个类都提供了周期性触发事件的能力。在ASP.NET中,我们可以创建一个后台线程或使用`HttpApplication`的生命周期事件来...
本文将深入探讨如何在Tomcat中实现定时任务,主要涉及的知识点包括Java的定时器(Timer)和Spring框架的TaskScheduler。 首先,让我们了解一下Java中的定时任务。在Java标准库中,有一个名为`java.util.Timer`的类...