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 ...
随机推荐
- 【BZOJ】2595: [Wc2008]游览计划
题意 \(n * m\)的网格,如果\(a_{i, j} = 0\)则表示景点,否则表示这里的需要的志愿者人数.求一种安排志愿者的方案使得所有景点连通且志愿者最少. 分析 本题可以插头dp,然而有一个 ...
- [BZOJ2788][Poi2012]Festival
2788: [Poi2012]Festival Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 187 Solved: 91[Submit][Statu ...
- (转)as3效率优化
1.改进算法无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了 ...
- Hirbernate第三次试题分析
解析:HQL语句可以执行T-SQL语句,但执行步骤较复杂,需引入jar包等各种配置. 解析:final修饰的成员变量必须由程序员显式地指定初始值. static一般用于修饰全局变量 解析:Hib ...
- Linux_文件查看
文件查看 直接查看内容:cat , tac , nl 翻页查看:more , less 指定获取内容:head , tail 查看非纯文字文档:od 文件时间更新与新建:touch cat: 从首行开 ...
- session.load()和session.get()的区别
Session.load/get方 法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象. 其区别在于: 如果未能发现 符合条件的记录,get方法返回null, 而load方 法会 ...
- 从jQuery中学习来的另一种继承方式(技巧)
遵从Js的原型链规则,利用js灵活的特性灵活地改造原型,可以实现各种创意地继承方式,昨天研究了jQuery,对作者实现继承的方式感到佩服,他对js原型和原型链的理解比较透彻,运用自如.这里给出jQue ...
- iframe自适应高度js
<iframe src="http://www.fufuok.com/" id="iframepage" name="iframepage&qu ...
- thinkphp类的调用
1.在controller下新建一个类,类的名称必须按照tp的规范来写. 2.在需要调用的类中,只需new一下被调用的类名. $t=new DataController(); $t->m();
- html中标签的含义及作用
链接:http://www.w3chtml.com/html/tag/div.html