java Timer


今天修改了一个关于timer的程序,记一下 :

1. 要求按周期进行任务

2.可以进行重置

3.得知中断后立刻进行任务

package com.rfts.client;

import java.util.Timer;
import java.util.TimerTask;


//间隔n分钟发送心跳信息
public class HeartBeatTimer {
	
	private  Timer timer ;
	private static long circle ;//心跳周期
	private TimerTask task=null;
	 
	 /**
		 * 根据开始计时时间和计时周期初始化计时器,并按周期执行任务
		 * @author rab
		 * */
		public  void startTimer() {
				 task = new TestTimerTask();
			 try {
				circle = Long.parseLong(PropertyEditor.getPosition("CIRCLE"))*1000*3;
			} catch (NumberFormatException e) {
				System.err.println("NumberFormatException");
				e.printStackTrace();
			} catch (Exception e) {
				System.err.println("Exception");
				e.printStackTrace();
			}
			// 设置任务计划,启动和间隔时间
			  timer = new Timer();
			  System.out.println(circle);
			  timer.schedule(task, 0, circle);
		}
		/**
		 * 关闭计时器
		 */
		public  void timerReset() {
			try {
				timer.cancel();
				startTimer();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
//	public static void main(String[] args)  {
//		HeartBeatTimer h = new HeartBeatTimer();
//		TestTimerTask.CONTENT="good";
//		h.startTimer();
//		
//		Random r = new Random();
//		while(true){
//			if(r.nextBoolean()){
//				TestTimerTask.CONTENT = "good";
//			}else{
//				TestTimerTask.CONTENT = "bad";
//			};
//			try {
//				Thread.sleep(3000);
//			} catch (InterruptedException e) {
//				e.printStackTrace();
//			}
//			 /******reset start************/
//			h.timerReset();
//			/******reset end************/
//		}
//		
//	}
	
}

task类
package com.rfts.client;

import java.util.Date;
import java.util.TimerTask;


/**
 * 此计时器任务要执行的操作。
 */
public class TestTimerTask extends TimerTask {
	
	/**
	 * 此计时器任务要执行的操作。
	 */
	public static String CONTENT="A";
	public void run() {
		 //发送JMS
		 Date d = new Date();
		 System.out.println(d.toString());
		 System.out.println("JMS="+CONTENT);
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值