Timer的用法
目的实现一个间隔轮询执行的功能。
从网上看到java中可以使用Timer,于是本篇文件就对自己的使用记录,进行一次记录。
主函数:
package cn.test.timer; import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask; public class TestTimer {
public static void main(String[] args) {
Timer timer = new Timer();
// schedule task
timer.schedule(new MyTimerTask(), 0, 2000); System.out.println("task over time:" + new Date()); try {
Thread.sleep(8000);
} catch (InterruptedException e) {
e.printStackTrace();
} System.out.println("task over time:" + new Date());
} }
继承TimerTask的自定义类MyTimerTask:
package cn.test.timer; import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask; import org.apache.log4j.Logger; public class MyTimerTask extends TimerTask {
private final Logger logger = Logger.getLogger(MyTimerTask.class.getName());
private final SimpleDateFormat fullDateFormat = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
private final SimpleDateFormat shortDateFormat = new SimpleDateFormat("yyyy-MM-dd"); @Override
public void run() {
// TODO Auto-generated method stub
System.out.println("task run time:" + new Date()); logger.info("start............................."); String fileDir = "D:/Java_Study/windowsservice/JavaService_2_0_10-amd64/log/";
String filePath = fileDir + shortDateFormat.format(new Date()) + ".txt"; File logDirector = new File(fileDir);
File logFile = new File(filePath); try {
if (!logDirector.exists()) {
logDirector.createNewFile();
}
if (!logFile.exists()) {
logFile.createNewFile();
}
FileWriter writer = new FileWriter(filePath, true); writer.write(fullDateFormat.format(new Date())+"\r\n");
writer.close(); } catch (final IOException e) {
e.printStackTrace();
logger.error("error:\r\n" + e.getMessage() + "\r\n" + e.getStackTrace());
} finally { }
logger.info("end.............................");
} }
运行起来后,Console上输出信息为:
task over time:Fri Apr 22 23:53:15 CST 2016
task run time:Fri Apr 22 23:53:15 CST 2016
0 INFO 2016-04-22 23:53:15 cn.test.timer.MyTimerTask start.............................
1 INFO 2016-04-22 23:53:15 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:17 CST 2016
1998 INFO 2016-04-22 23:53:17 cn.test.timer.MyTimerTask start.............................
2000 INFO 2016-04-22 23:53:17 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:19 CST 2016
3998 INFO 2016-04-22 23:53:19 cn.test.timer.MyTimerTask start.............................
4001 INFO 2016-04-22 23:53:19 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:21 CST 2016
5998 INFO 2016-04-22 23:53:21 cn.test.timer.MyTimerTask start.............................
6001 INFO 2016-04-22 23:53:21 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:23 CST 2016
7998 INFO 2016-04-22 23:53:23 cn.test.timer.MyTimerTask start.............................
task over time:Fri Apr 22 23:53:23 CST 2016
8000 INFO 2016-04-22 23:53:23 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:25 CST 2016
9998 INFO 2016-04-22 23:53:25 cn.test.timer.MyTimerTask start.............................
9999 INFO 2016-04-22 23:53:25 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:27 CST 2016
11999 INFO 2016-04-22 23:53:27 cn.test.timer.MyTimerTask start.............................
12000 INFO 2016-04-22 23:53:27 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:29 CST 2016
13999 INFO 2016-04-22 23:53:29 cn.test.timer.MyTimerTask start.............................
14001 INFO 2016-04-22 23:53:29 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:31 CST 2016
15999 INFO 2016-04-22 23:53:31 cn.test.timer.MyTimerTask start.............................
16000 INFO 2016-04-22 23:53:31 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:33 CST 2016
17999 INFO 2016-04-22 23:53:33 cn.test.timer.MyTimerTask start.............................
18001 INFO 2016-04-22 23:53:33 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:35 CST 2016
19999 INFO 2016-04-22 23:53:35 cn.test.timer.MyTimerTask start.............................
20001 INFO 2016-04-22 23:53:35 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:37 CST 2016
21999 INFO 2016-04-22 23:53:37 cn.test.timer.MyTimerTask start.............................
22001 INFO 2016-04-22 23:53:37 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:39 CST 2016
23999 INFO 2016-04-22 23:53:39 cn.test.timer.MyTimerTask start.............................
24003 INFO 2016-04-22 23:53:39 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:41 CST 2016
25999 INFO 2016-04-22 23:53:41 cn.test.timer.MyTimerTask start.............................
26001 INFO 2016-04-22 23:53:41 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:43 CST 2016
27999 INFO 2016-04-22 23:53:43 cn.test.timer.MyTimerTask start.............................
28002 INFO 2016-04-22 23:53:43 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:45 CST 2016
30000 INFO 2016-04-22 23:53:45 cn.test.timer.MyTimerTask start.............................
30002 INFO 2016-04-22 23:53:45 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:47 CST 2016
32000 INFO 2016-04-22 23:53:47 cn.test.timer.MyTimerTask start.............................
32004 INFO 2016-04-22 23:53:47 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:49 CST 2016
34000 INFO 2016-04-22 23:53:49 cn.test.timer.MyTimerTask start.............................
34002 INFO 2016-04-22 23:53:49 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:51 CST 2016
36000 INFO 2016-04-22 23:53:51 cn.test.timer.MyTimerTask start.............................
36002 INFO 2016-04-22 23:53:51 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:53 CST 2016
38000 INFO 2016-04-22 23:53:53 cn.test.timer.MyTimerTask start.............................
38001 INFO 2016-04-22 23:53:53 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:55 CST 2016
40000 INFO 2016-04-22 23:53:55 cn.test.timer.MyTimerTask start.............................
40002 INFO 2016-04-22 23:53:55 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:57 CST 2016
42000 INFO 2016-04-22 23:53:57 cn.test.timer.MyTimerTask start.............................
42002 INFO 2016-04-22 23:53:57 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:53:59 CST 2016
44000 INFO 2016-04-22 23:53:59 cn.test.timer.MyTimerTask start.............................
44004 INFO 2016-04-22 23:53:59 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:01 CST 2016
46000 INFO 2016-04-22 23:54:01 cn.test.timer.MyTimerTask start.............................
46001 INFO 2016-04-22 23:54:01 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:03 CST 2016
48001 INFO 2016-04-22 23:54:03 cn.test.timer.MyTimerTask start.............................
48003 INFO 2016-04-22 23:54:03 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:05 CST 2016
50001 INFO 2016-04-22 23:54:05 cn.test.timer.MyTimerTask start.............................
50002 INFO 2016-04-22 23:54:05 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:07 CST 2016
52001 INFO 2016-04-22 23:54:07 cn.test.timer.MyTimerTask start.............................
52003 INFO 2016-04-22 23:54:07 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:09 CST 2016
54001 INFO 2016-04-22 23:54:09 cn.test.timer.MyTimerTask start.............................
54003 INFO 2016-04-22 23:54:09 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:11 CST 2016
56001 INFO 2016-04-22 23:54:11 cn.test.timer.MyTimerTask start.............................
56002 INFO 2016-04-22 23:54:11 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:13 CST 2016
58001 INFO 2016-04-22 23:54:13 cn.test.timer.MyTimerTask start.............................
58003 INFO 2016-04-22 23:54:13 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:15 CST 2016
60001 INFO 2016-04-22 23:54:15 cn.test.timer.MyTimerTask start.............................
60003 INFO 2016-04-22 23:54:15 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:17 CST 2016
62001 INFO 2016-04-22 23:54:17 cn.test.timer.MyTimerTask start.............................
62003 INFO 2016-04-22 23:54:17 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:19 CST 2016
64002 INFO 2016-04-22 23:54:19 cn.test.timer.MyTimerTask start.............................
64004 INFO 2016-04-22 23:54:19 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:21 CST 2016
66002 INFO 2016-04-22 23:54:21 cn.test.timer.MyTimerTask start.............................
66004 INFO 2016-04-22 23:54:21 cn.test.timer.MyTimerTask end.............................
task run time:Fri Apr 22 23:54:23 CST 2016
68002 INFO 2016-04-22 23:54:23 cn.test.timer.MyTimerTask start.............................
68003 INFO 2016-04-22 23:54:23 cn.test.timer.MyTimerTask end.............................
Timer的用法的更多相关文章
- .NET中的Timer类型用法详解
这篇文章主要介绍了.NET中的Timer类型用法,较为详细的分析了Timer类型在各种环境下的用法,需要的朋友可以参考下 在.NET FrameWork中有多个Timer,那么怎么根据实际情况进行 ...
- Java中Timer的用法
现在项目中用到需要定时去检查文件是否更新的功能.timer正好用于此处. 用法很简单,new一个timer,然后写一个timertask的子类即可. 代码如下: package comz.autoup ...
- Java中Timer的用法--转载之网络
用法很简单,new一个timer,然后写一个timertask的子类即可. import java.util.Timer; import java.util.TimerTask; public cla ...
- timer.Interval用法简介
这个东东呢是我在做windows服务的时候碰到的,总结了一下她的用法,如下: 一.指定时间间隔 写一个每隔一分钟就执行一次的吧 public partial class PSJCService : S ...
- handler和Timer的用法
final Handler handler = new Handler(){public void handleMessage(Message msg){if (msg.what == 0x123){ ...
- C# Timer定时器用法
System.Timers.Timer timer1 = new System.Timers.Timer(); timer1.Elapsed += new System.Timers.ElapsedE ...
- android Timer TimerTask用法笔记
Android中经常会遇到执行一些周期性定时执行的任务.初学的时候经常会使用Thread.sleep()方法.在android中,有Timer可以专门干这个事情. 先看看Timer.class中都是些 ...
- 【WIP】swift3的timer的用法
创建: 2017/10/14 更新: 2017/10/14 标题加上[WIP],补充创建时间 回家再写
- Timer和TimerTask的用法
最近在做java课程设计的时候,我用到了timer,于是学习了一下timer的用法. java实现多线程比较常用的两种方法,一种是直接继承Thread类,另一种则是实现Runnable接口.Timer ...
随机推荐
- 《深入浅出Windows Phone 8.1 应用开发》基于Runtime框架全新升级版
<深入浅出Windows Phone 8.1 应用开发>使用WP8.1 Runtime框架最新的API重写了上一本<深入浅出Windows Phone 8应用开发>大部分的的内 ...
- IP地址分类整理
什么是IP地址? IP地址就是计算机在网络中地址. IP地址有多少个? IP地址范围是:0.0.0.0~225.225.225.255,这只是人为了方便记录才转为十进制的,ip地址实际是一个32位地址 ...
- php 实现推技术comet(转)
实现实时通信一般有两种方式:socket或comet.socket是比较好的解决方案,问题在于不是所有的浏览器都兼容,服务器端实现起来也稍微有点麻烦.相比之下,comet(基于HTTP长连接的&quo ...
- Working with C# dictionary
Check dictionary value if it's empty dictionary.ElementAt(i).Value == DBNull.Value Check string valu ...
- nginx资源定向 css js路径问题
今天玩玩项目,学学nginx发现还不错,速度还可以,但是CSS JS确无法使用,原来Iginx配置时需要对不同类型的文件配置规则,真是很郁闷,不过想想也还是很有道理.闲暇之际,把配置贴上来.#user ...
- [LintCode] Paint Fence 粉刷篱笆
There is a fence with n posts, each post can be painted with one of the k colors.You have to paint a ...
- Map 映射
package lis0924; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import j ...
- ArcEngine:空间索引格网大小无效
参考如下帖子:http://www.cnblogs.com/linhugh/archive/2012/07/24/2606439.html\ C# 代码如下 IFeatureClass pNewFtC ...
- bzoj3504: [Cqoi2014]危桥--最大流
题目大意:给张无向图,有两个人a,b分别从各自的起点走向各自的终点,走A,B个来回,图里有些边只能走两次,求问是否能满足a,b的需求 按照题目给的表建图 S连a1,b1 a2,b2连T 跑最大流看是否 ...
- string用法
截取字符串 string strTributeInfo = "1#2#3#4#5#6#7"; vector<string> vecTribute; StringUtil ...