So führen Sie eine Aufgabe regelmäßig in Java aus
Einige Java-Anwendungen müssen eine Methode zwischen einem regulären Zeitintervall ausführen. Beispielsweise sollte die GUI-Anwendung einige Informationen aus der Datenbank aktualisieren.
1. Scheduler Task
Für diese Funktionalität
-
Sie sollten eine Klasse erstellen, die TimerTask erweitert (verfügbar im Paket
java.util). TimerTask ist eine abstrakte Klasse. -
Schreiben Sie Ihren Code in die Methode public void
run(), die Sie regelmäßig ausführen möchten. -
Fügen Sie den folgenden Code in Ihre Hauptklasse ein.
import java.util.TimerTask;
import java.util.Date;
/**
*
* @author Dhinakaran P.
*/
// Create a class extends with TimerTask
public class ScheduledTask extends TimerTask {
Date now; // to display current time
// Add your task here
public void run() {
now = new Date(); // initialize date
System.out.println("Time is :" + now); // Display current time
}
}
2. Führen Sie die Scheduler-Aufgabe aus
Eine Klasse, die über der Scheduler-Aufgabe ausgeführt werden soll.
-
Zeitgeberobjekt
Timer time = new Timer();instanziieren -
Geplante Task-Klasse Objekt
ScheduledTask st = new ScheduledTask();instanziieren -
Weisen Sie die geplante Aufgabe mit der Methode
Timer.shedule()zu.
import java.util.Timer;
/**
*
* @author Dhinakaran P.
*/
//Main class
public class SchedulerMain {
public static void main(String args[]) throws InterruptedException {
Timer time = new Timer(); // Instantiate Timer Object
ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class
time.schedule(st, 0, 1000); // Create Repetitively task for every 1 secs
//for demo only.
for (int i = 0; i <= 5; i++) {
System.out.println("Execution in Main Thread...." + i);
Thread.sleep(2000);
if (i == 5) {
System.out.println("Application Terminates");
System.exit(0);
}
}
}
}
Ausgabe:
Execution in Main Thread....0 Time is :Tue Jun 19 14:21:42 IST 2012 Time is :Tue Jun 19 14:21:43 IST 2012 Execution in Main Thread....1 Time is :Tue Jun 19 14:21:44 IST 2012 Time is :Tue Jun 19 14:21:45 IST 2012 Execution in Main Thread....2 Time is :Tue Jun 19 14:21:46 IST 2012 Time is :Tue Jun 19 14:21:47 IST 2012 Execution in Main Thread....3 Time is :Tue Jun 19 14:21:48 IST 2012 Time is :Tue Jun 19 14:21:49 IST 2012 Execution in Main Thread....4 Time is :Tue Jun 19 14:21:50 IST 2012 Time is :Tue Jun 19 14:21:51 IST 2012 Application Terminates Time is :Tue Jun 19 14:21:52 IST 2012
Note
Wenn Ihr Code keine Terminierung enthält, wird er nicht gestoppt. Sie sollten also einen Programmabschluss verwenden.