我如何每天下午2点运行我的TimerTask [英] How i can run my TimerTask everyday 2 PM
本文介绍了我如何每天下午2点运行我的TimerTask的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想每天下午2点执行一份工作。
java.util.Timer
的哪种方法我可以用来安排我的工作?
I want to execute a job everyday 2PM .
Which method of java.util.Timer
i can use to schedule my job?
2小时后运行它将停止工作并重新安排在第二天下午2点。
After 2Hrs Run it will stop the job and reschedule for next day 2PM.
推荐答案
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
private final static long ONCE_PER_DAY = 1000*60*60*24;
//private final static int ONE_DAY = 1;
private final static int TWO_AM = 2;
private final static int ZERO_MINUTES = 0;
@Override
public void run() {
long currennTime = System.currentTimeMillis();
long stopTime = currennTime + 2000;//provide the 2hrs time it should execute 1000*60*60*2
while(stopTime != System.currentTimeMillis()){
// Do your Job Here
System.out.println("Start Job"+stopTime);
System.out.println("End Job"+System.currentTimeMillis());
}
}
private static Date getTomorrowMorning2AM(){
Date date2am = new java.util.Date();
date2am.setHours(TWO_AM);
date2am.setMinutes(ZERO_MINUTES);
return date2am;
}
//call this method from your servlet init method
public static void startTask(){
MyTimerTask task = new MyTimerTask();
Timer timer = new Timer();
timer.schedule(task,getTomorrowMorning2AM(),1000*10);// for your case u need to give 1000*60*60*24
}
public static void main(String args[]){
startTask();
}
}
这篇关于我如何每天下午2点运行我的TimerTask的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文