您现在的位置是:主页 > Web前端技术 > Web前端技术
java中Timer定时器怎么用开发技术
IDCBT2021-12-28【服务器技术】人已围观
简介小编给大家分享一下java中Timer定时器怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
小编给大家分享一下java中Timer定时器怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Timer定时器的使用和启动1.概述定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和多线程技术还是有非常大的关联的。在JDK中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务,但封装任务的类却是TimerTask类。
2.应用场景我们使用timer的时候,一般有4种情况:
指定时间执行
指定时间执行后间隔指定时间重复执行
启动任务之后多久执行
启动任务后多久执行,执行之后指定间隔多久重复执行
3.使用方法首先要通过继承 TimerTask 类 并实现 run() 方法来自定义要执行的任务(当然也可以写成匿名内部类),
需要创建一个定时器(Timer类对象),并通过Timer.schedule(TimerTask task,Date time) 方法执行时间运行任务
具体代码如下:
package timerdemo; import java.util.Timer; import java.util.TimerTask; public class TimerDemo { public static void main(String[] args) { timerTest(); } public static void timerTest(){ //创建一个定时器 Timer timer = new Timer(); //schedule方法是执行时间定时任务的方法 timer.schedule(new TimerTask() { //run方法就是具体需要定时执行的任务 @Override public void run() { System.out.println("timer测试!!!"); } }, 1000, 10000); } }
这里的 schedule方法有4个,分别对应上面说的四种情况:
4.启动方法1.在jar工程下启动
把jar工程打成jar包,通过java -jar timer.jar 运行
2.这web工程下启动
spring中我们可以通过实现接口ApplicationListener,并重写public void onApplicationEvent(ApplicationEvent event) {}可以在容器初始话的时候执行这个方法
下面展示下web工程下每天00:00执行任务的代码:
@Component public class SystemInitListener implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEvent event) { //创建定时器 Timer timer = new Timer(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE,1); calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),0,0,0); long timeInterval = 24 * 60 * 60 * 1000; timer.schedule(new TimerTask() { @Override public void run() { // 每天00:00需要做的事情 } }, calendar.getTime(), timeInterval);标签:很赞哦! ()