如何在Java中排程任務,使其以固定的延遲重複執行,並從指定時間開始
Timer類中的一個方法是void schedule(TimerTask task, Date firstTime, long period)方法。此方法安排任務以固定的延遲重複執行,從指定時間開始。
在固定延遲執行中,每次執行都相對於前一次執行的原始執行時間進行排程。如果由於某種原因(例如垃圾回收)導致執行延遲,則後續執行也將延遲。
宣告 − java.util.Timer.schedule(TimerTask task, Date firstTime, long period)宣告如下:
public void schedule(TimerTask task, Date firstTime, long period)
其中,task是要排程的任務,firstTime是執行任務的第一次時間,period是連續任務執行之間以毫秒為單位的時間。
schedule(Timertask task, Date firstTime, long period)方法會丟擲一些異常。它們如下所示:
| IllegalArgumentException | 如果firstTime.getTime為負數或period<=0,則丟擲此異常。 |
| IllegalStateException | 如果任務已提前排程或取消,計時器已取消或計時器執行緒已終止,則丟擲此異常。 |
| NullPointerException | 如果task為null,則丟擲此異常。 |
讓我們看一個示例,該示例演示如何在Java中排程任務以從指定時間開始以固定的延遲重複執行:
示例
import java.util.*;
class MyTask extends TimerTask {
public void run() {
System.out.println("Task is running");
}
}
public class Example {
public static void main(String[] args) {
Timer timer = new Timer(); // creating timer
TimerTask task = new MyTask(); // creating timer task
timer.scheduleAtFixedRate(task,new Date(),2000);
// scheduling the task at the specified time at fixed-delay
}
}輸出
Task is running Task is running Task is running Task is running Task is running
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP