java定时任务直接看代码
public void timeTask(){
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//方法体
System.out.println("执行中。。。");
}
}, 0, 5*60*1000);//经过0ms开始第一次调用,然后每隔5*60*1000ms执行一次。
}
schedule()方法参数说明:
1、调度一个task,经过delay(ms)后开始进行调度,仅仅调度一次。
public void schedule(TimerTask task, long delay)
2、在指定的时间点time上调度一次。
public void schedule(TimerTask task, Date time)
3、调度一个task,在delay(ms)后开始调度,每次调度完后,最少等待period(ms)后才开始调度。
public void schedule(TimerTask task, long delay, long period)
4、调度一个task,在firstTime时开始调度,每次调度完后,最少等待period(ms)后才开始调度。
public void schedule(TimerTask task, Date firstTime, long period)
public void schedule(TimerTask task, long delay)
2、在指定的时间点time上调度一次。
public void schedule(TimerTask task, Date time)
3、调度一个task,在delay(ms)后开始调度,每次调度完后,最少等待period(ms)后才开始调度。
public void schedule(TimerTask task, long delay, long period)
4、调度一个task,在firstTime时开始调度,每次调度完后,最少等待period(ms)后才开始调度。
public void schedule(TimerTask task, Date firstTime, long period)
scheduleAtFixedRate()(可以代替schedule()方法)方法参数说明:
1、调度一个task,在delay(ms)后开始调度,然后每经过period(ms)再次调度。
public void scheduleAtFixedRate(TimerTask task, long delay, long period)
2、调度一个task,在firstTime时开始调度,然后每经过period(ms)再次调度。
public void scheduleAtFixedRate(TimerTask task, Date firstTime,long period)
public void scheduleAtFixedRate(TimerTask task, long delay, long period)
2、调度一个task,在firstTime时开始调度,然后每经过period(ms)再次调度。
public void scheduleAtFixedRate(TimerTask task, Date firstTime,long period)
schedule方法和scheduleAtFixedRate方法比较:
schedule在计算下一次执行的时间的时候,是通过当前时间(任务执行前得到) + 时间间隔,参考时间是运行的实际时间。
scheduleAtFixedRate方法是通过当前需要执行的时间(就是计算出现在应该执行的时间)+ 时间间隔,参考时间是理论时间点。
scheduleAtFixedRate方法是通过当前需要执行的时间(就是计算出现在应该执行的时间)+ 时间间隔,参考时间是理论时间点。