JAVA定时任务的简单实现
2012-05-21 22:18
429 查看
Java定时任务的简单实现
2011-01-02 18:34:43| 分类:软件开发 | 标签:void timer import param dateutil
|字号大中小 订阅
Spring为我们提供了很方便的定时任务处理,但是不用Spring呢?JDK也给提供了一个简单的定时任务处理,废话不多说,贴上源码
package com.yhj.timeTask;< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
import java.util.TimerTask;
import com.yhj.common.date.DateUtil;
/**
* 要执行的定时任务
* com.yhj.timeTask.PrintTask.java
* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:24:01
*/
public class PrintTask extends TimerTask {
@Override
public void run() {
System.out.println(DateUtil.getCurrentChineseDate());
}
}
package com.yhj.timer;
import java.text.ParseException;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import com.yhj.common.date.DateUtil;
import com.yhj.timeTask.PrintTask;
/**
* 计时器
* com.yhj.timer.PrintTimer.java
* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:24:49
*/
public class PrintTimer {
/**
* 计时器
*/
private Timer timer =new Timer();
/**
* 每天执行一次
* @param task
* @param time 要求执行格式 hh:mn:ss
* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:28:11
* @throws InterruptedException
* @throws ParseException
*/
public void doEveryDay(TimerTask task,String time)
throws InterruptedException, ParseException {
time=DateUtil.getCurrentDateStr().substring(0,11)+time;
long milliSeconds=DateUtil.compare(new Date(), DateUtil.praseDate(time), DateUtil.ONE_MILLI_SECOND);
Thread.sleep(Math.abs(milliSeconds));
timer.scheduleAtFixedRate(task,new Date(), DateUtil.ONE_DAY);
}
/**
* 在某个时间点执行一次
* @param task
* @param date
* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:29:29
*/
public void doOnce(TimerTask task,Date date) {
timer.schedule(task, date);
}
/**
* 每隔多长时间执行一次
* @param task
* @param milliSeconds
* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:53:54
*/
public void doWithRepeat(TimerTask task,long milliSeconds) {
timer.scheduleAtFixedRate(task,0, milliSeconds);
}
}
package com.yhj.clint;
import com.yhj.timeTask.PrintTask;
import com.yhj.timer.PrintTimer;
public class Clint {
/**
* @param args
* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:55:19
*/
public static void main(String[] args) {
new PrintTimer().doWithRepeat(new PrintTask(), 1000);
}
}
对于该调用哪个方法呢?参见JDK(如下)
方法摘要 | |
void | cancel() 终止此计时器,丢弃所有当前已安排的任务。 |
int | purge() 从此计时器的任务队列中移除所有已取消的任务。 |
void | schedule(TimerTask task, Date time) 安排在指定的时间执行指定的任务。 |
void | schedule(TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定延迟执行。 |
void | schedule(TimerTask task, long delay) 安排在指定延迟后执行指定的任务。 |
void | schedule(TimerTask task, long delay, long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。 |
void | scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定速率执行。 |
void | scheduleAtFixedRate(TimerTask task, long delay, long period) 安排指定的任务在指定的延迟后开始进行重复的固定速率执行。 |
相关文章推荐
- Java定时任务调度简单实现
- Java简单定时任务实现(Quartz)
- Java实现简单定时任务
- Java定时任务的简单实现
- DelayQueue 实现简单的定时任务
- Java定时任务的三种实现方法
- SpringMVC整合Quartz实现定时任务---简单的例子
- java实现定时任务的三种方法
- android增删改查以及通知栏和定时任务简单的实现
- Java实现定时任务的三种方法
- java实现job功能,定时开启任务
- java Quartz定时器任务与Spring task定时的几种实现
- java实现定时任务的三种方法
- java Timer实现定时任务
- 使用 Java 计时器实现定时执行任务
- Quartz + Spring 简单实现定时任务
- java实现定时任务的方法
- java Quartz定时器任务与Spring task定时的几种实现
- Java定时任务的实现
- Java中实现定时任务