Dieser Artikel stellt hauptsächlich die relevanten Informationen zum TaskScheduler im Frühjahr vor. Ich glaube, dass er einen gewissen Referenzwert für alle hat, die ihn benötigen.
Vorwort
Wie wir alle wissen, verfügt es nach der Frühjahrsversion 3.0 über ein Tool für geplante Aufgaben, das einfach und bequem ist zu verwenden, ohne dass Konfigurationsdateien erforderlich sind. Ändern Sie den Ausführungsstatus dynamisch. Sie können Cron-Ausdrücke auch verwenden, um geplante Aufgaben einzurichten.
Die ausgeführte Klasse muss die Runnable-Schnittstelle
TaskScheduler-Schnittstelle
TaskScheduler implementieren Es handelt sich um eine Schnittstelle. Die TaskScheduler-Schnittstelle definiert 6 Methoden
1, schedule(Runnable task, Trigger trigger);
, um eine Triggerausführungs-Timing-Aufgabe anzugeben . Mit CronTrigger können Sie Cron-Ausdrücke angeben, um geplante Aufgaben auszuführen
CronTrigger t = new CronTrigger("0 0 10,14,16 * * ?"); taskScheduler.schedule(this, t);
2. Geben Sie eine bestimmte an Führen Sie geplante Aufgaben zu einem bestimmten Zeitpunkt aus, und Sie können den Zeitpunkt zum Starten der Aufgabe dynamisch angeben. Nur einmal ausgeführt. (Viel einfacher zu verwenden als Timer. Ich wünschte, ich hätte diese Schnittstelle früher entdeckt...) schedule(Runnable task, Date startTime);
scheduleAtFixedRate(Runnable task, long period);
PS:
PS ; Aufgabe: Geben Sie einen Intervallzeitraum an (Millisekunden-Timing)
scheduleAtFixedRate(Runnable task, Date startTime, long period);
PS:
Nach dem vorherigen Zyklus ausgeführt, warten Sie auf die Verzögerungszeit, und der nächste Zyklus beginnt mit der Ausführung
6. Geben Sie die Zeit für den Start der Ausführung an, führen Sie einen Zyklus durch Geben Sie ein Intervall an (Millisekunden-Timing)
PS:
Nachdem der vorherige Zyklus ausgeführt wurde, warten Sie auf die Verzögerungszeit, und der nächste Zyklus beginnt mit der Ausführung scheduleWithFixedDelay(Runnable task, long delay);
1. ConcurrentTaskScheduler
scheduleWithFixedDelay(Runnable task, Date startTime, long delay);
PS:
2, DefaultManagedTaskScheduler
führt Aufgaben im aktuellen Thread aus. Dies ist eine Unterklasse von ConcurrentTaskScheduler und fügt JNDI-Unterstützung hinzu. Dieselbe Verwendung wie ConcurrentTaskScheduler, Sie müssen JNDI verwenden, um es separat festzulegen
3. ThreadPoolTaskScheduler
Die Standardimplementierungsklasse der TaskScheduler-Schnittstelle, geplante Multithread-Aufgabe Ausführung. Sie können die Anzahl der Ausführungs-Thread-Pools festlegen (Standard ist ein Thread).
PS:
Muss vor der Verwendung aufgerufen werden
[Initialisierungsmethode]public class LocTest implements Runnable { private ConcurrentTaskScheduler tpts = new ConcurrentTaskScheduler(); private void start() { tpts.schedule(this, new Date()); } public void run() { Thread ct = Thread.currentThread(); System.out.println("current id:"+ct.getId()); System.out.println("current name:"+ct.getName()); } public static void main(String[] args) { new LocTest().start(); } }
hat eine
Dies wird nicht verwendet, daher weiß ich es nicht im Detail, wenn ich Zeit habe. Wer mehr weiß, kann gerne ergänzen.
Zusammenfassunginitialize()
shutDown()