Webanwendungen erfordern heute häufig, dass bestimmte Aufgaben wie geplant ausgeführt werden. Zum Beispiel senden Sie Benachrichtigungen jeden Tag zu einem bestimmten Zeitpunkt an die E-Mail oder aktualisieren Sie jede Woche Daten in der Datenbank. Ein Scheduler wird verwendet, um solche Aufgaben zu automatisieren.
Der Shedouler im Spring Framework bietet die Möglichkeit, die Ausführung von Aufgaben zu bestimmten Zeiten oder in bestimmten Intervallen programmgesteuert zu konfigurieren. Es basiert auf der Standard-Java-Scheduler-Bibliothek und bietet eine einfachere und bequemere Möglichkeit, mit zeitgesteuerten Aufgaben zu arbeiten.
Die Hauptkomponente des Shedulers im Spring Framework ist eine Annotation @Scheduled. Sie können eine Methode angeben, die nach einem Zeitplan aufgerufen werden soll. Die Methode muss mit einer Annotation gekennzeichnet sein @Scheduled und für den Anruf verfügbar sein. Die Ausführungszeit der Aufgabe wird als Zeichenfolge mit der Standard-Cron-Syntax angegeben.
Zusätzlich zum Erstellen von Methoden, die mit einer Anmerkung gekennzeichnet sind @Scheduled Sie müssen den Shedouler auch in der Anwendungskonfigurationsdatei konfigurieren. Fügen Sie dazu eine Annotation hinzu @EnableScheduling auf der Hauptklasse der Anwendung. Dies aktiviert die Verwendung des Schedulers in der Anwendung und ermöglicht das korrekte Lesen von Anmerkungen @Scheduled und die Ausführung von Aufgaben anpassen.
In diesem Leitfaden haben wir die Grundlagen des Shedoolers im Spring Framework untersucht und gezeigt, wie Methoden erstellt und konfiguriert werden, die wie geplant ausgeführt werden. Die Verwendung eines Schedulers vereinfacht die Automatisierung Routineaufgaben in einer Webanwendung erheblich und macht sie effizienter.
Was ist ein Scheduler in Spring
Ein Scheduler ermöglicht es dem Entwickler zu bestimmen, wann und wie oft eine Aufgabe ausgeführt werden soll. Es basiert auf Anmerkungen oder XML-Konfigurationen, die angeben, wann oder wie oft die Aufgabe ausgeführt wird.
Der Shedouler im Spring Framework basiert auf dem Quarzplanungskern. Quartz ist ein leistungsfähiger und flexibler Scheduler, der in die Spring-Anwendung für die automatische Aufgabenplanung integriert werden kann.
Der Scheduler bietet verschiedene Möglichkeiten, wie zum Beispiel:
- Festlegen des genauen Zeitpunkts zum Ausführen einer Aufgabe;
- Legt fest, wie oft eine Aufgabe ausgeführt wird (z. B. alle 5 Minuten);
- Definieren von Abhängigkeiten zwischen Aufgaben;
- Ändern von Aufgabenparametern während der Ausführung;
- Behandeln von Fehlern und Fehlern in Aufgaben.
Die Verwendung eines Shedulers in Spring ermöglicht es Entwicklern, sich wiederholende Aufgaben wie das Generieren von Berichten, das Aktualisieren von Daten oder das Senden von Benachrichtigungen automatisch auszuführen. Es bietet auch Zuverlässigkeit und Flexibilität bei der Planung dieser Aufgaben, sodass Sie ihre Ausführung zur richtigen Zeit entsprechend den Anforderungen der Anwendung bestimmen können.
Die Arbeit eines Schedulers in Spring
Der Shedouler in Spring bietet einen Mechanismus zum automatischen Ausführen von Aufgaben zu einer bestimmten Zeit oder in einer bestimmten Häufigkeit. Dies ist sehr praktisch und nützlich für regelmäßige Aufgaben wie das Aktualisieren von Daten, das Senden von Benachrichtigungen usw.
Die Hauptkomponente, die für die Arbeit mit dem Sheduler in Spring verwendet wird, ist TaskScheduler. Es bietet Methoden zum Ausführen von Aufgaben basierend auf verschiedenen Kriterien wie Zeit, Häufigkeit, Verzögerung usw.
Um den Shedooler in Spring zu verwenden, müssen Sie ihn in der Konfigurationsdatei konfigurieren. Sie können Anmerkungen wie @EnableScheduling und @Scheduled verwenden, um anzugeben, welche Methoden als Aufgaben ausgeführt werden sollen.
Um beispielsweise alle 5 Sekunden die UpdateData() -Methode auszuführen, können wir die @Scheduled-Annotation wie folgt verwenden:
| Methode | Annotation |
|---|---|
| public void updateData() | @Scheduled(fixedRate = 5000) |
Diese Methode wird alle 5 Sekunden ausgeführt, beginnend mit dem Start der Anwendung. Sie können andere Annotationsattribute angeben, z. B. fixedDelay oder initialDelay, um eine andere Periodizität zu verwenden.
Der Shedouler in Spring bietet auch die Möglichkeit, Cron-Ausdrücke zu verwenden, um die Ausführung von Aufgaben flexibler zu steuern. Sie können beispielsweise die genaue Startzeit, die Wochentage, die Häufigkeit usw. angeben.
Insgesamt bietet der Shedouler in Spring einen leistungsstarken und flexiblen Mechanismus, um Aufgaben automatisch zu einer bestimmten Zeit oder in bestimmten Abständen auszuführen. Dies ermöglicht es Entwicklern, sich auf die Geschäftslogik von Aufgaben zu konzentrieren, ohne sich Gedanken darüber zu machen, wann und wie sie ausgeführt werden.
Grundprinzipien der Arbeit
Der Shedouler im Spring Framework bietet die Möglichkeit, Aufgaben in Ihrer Anwendung zeitgesteuert auszuführen. Das Grundprinzip des Schedulers besteht darin, eine Methode anzugeben, die regelmäßig oder zu bestimmten Zeitpunkten ausgeführt wird.
Um einen Sheduler zu verwenden, müssen Sie die Methoden, die Sie nach Zeitplan ausführen möchten, mit der @Scheduled Annotation kommentieren. Mit dieser Annotation können Sie eine bestimmte Ausführungszeit, ein Intervall zwischen den Ausführungen oder einen Cron-Ausdruck für einen komplexeren Zeitplan festlegen.
Eines der Hauptprinzipien des Shedoolers ist die Verwendung des Threadpool-Mechanismus. Wenn die Anwendung initialisiert wird, erstellt Spring einen Threadpool, in dem geplante Aufgaben ausgeführt werden. Sie können die Größe des Threadpools in der Anwendungskonfiguration konfigurieren.
Der Shedouler bietet auch die Möglichkeit, mit asynchronen Aufgaben zu arbeiten. Sie können angeben, dass die Methode asynchron ausgeführt werden soll, indem Sie eine @Async-Annotation hinzufügen. Dadurch können Sie lange Vorgänge ausführen, ohne den Hauptausführungsthread zu blockieren.
Außerdem ist es im Spring Framework möglich, den Shedooler mit einer XML-Datei oder einer Java-Config zu konfigurieren. Sie können angeben, welchen Threadpool Sie verwenden möchten, den Task-Ausführungsmechanismus und andere Parameter konfigurieren.
Anwendungsbeispiele
Mit dem Shedouler in Spring können Sie geplante Aufgaben in Ihrer Anwendung ausführen. Hier sind einige Beispiele, wie ein Scheduler in Spring verwendet werden kann:
- Regelmäßige Berichte senden Sie können planen, regelmäßige Berichte zu bestimmten Zeiten zu senden. Sie können beispielsweise eine Aufgabe erstellen, die jeden Tag zu einem bestimmten Zeitpunkt ausgeführt wird und einen Bericht an die angegebenen Adressen sendet.
- Aktualisieren des Datencache Wenn Sie Daten haben, die häufig aktualisiert werden, können Sie den Datencache mit dem Shedouler automatisch aktualisieren. Sie können beispielsweise eine Aufgabe erstellen, die alle 10 Minuten ausgeführt wird, und den Datencache von der Quelle aktualisieren.
- Ausführen von Backups Sie können einen Shedouler verwenden, um regelmäßige Backups Ihrer Datenbank oder anderer wichtiger Dateien zu planen. Sie können beispielsweise eine Aufgabe erstellen, die stündlich ausgeführt wird, und eine Sicherungskopie an einem bestimmten Speicherort erstellen.
Dies sind nur einige Beispiele für die Verwendung eines Schedulers in Spring. Mit dem Scheduler können Sie viele Aufgaben in Ihrer Anwendung automatisieren, sodass Sie sich auf wichtigere Aufgaben konzentrieren können.
Einrichten eines Schedulers in Spring
Befolgen Sie einige Schritte, um den Scheduler in Spring zu konfigurieren:
- Fügen Sie dem Aufgabenplaner in der pom-Datei eine Abhängigkeit hinzu.xml .
- Fügen Sie der Hauptklasse der Anwendung eine @EnableScheduling-Annotation hinzu.
- Erstellen Sie eine Klasse, in der das Verhalten der Aufgabe für den Scheduler beschrieben wird.
- Fügen Sie @Scheduled-Annotationsmethoden hinzu, um geplante Aufgaben auszuführen.
- Konfigurieren von Aufgabenausführungsoptionen wie Häufigkeit, feste Zeit usw.
- Starten Sie die Anwendung und stellen Sie sicher, dass die Aufgabe wie geplant ausgeführt wird.
Beim Einrichten des Schedulers in Spring ist es wichtig, die folgenden Punkte zu berücksichtigen:
- Die markierte Methode muss über einen public-Zugriffsmodifizierer verfügen.
- Methodenparameter müssen unterstützte Datentypen sein, z. B. String , int , long usw.
- Die Methode muss für Multithreading sicher sein, damit keine Konflikte und Rennen auftreten.
- Der Scheduler muss entsprechend den Anwendungsmerkmalen und den Anforderungen des Aufgabenplans konfiguriert werden.
Das Einrichten eines Schedulers in Spring ist eine einfache und bequeme Möglichkeit, Aufgaben automatisch nach einem Zeitplan auszuführen. Mit dem Scheduler können Sie Aufgaben einfach im Hintergrund planen und ausführen, was die Entwicklung und Wartung der Anwendung erheblich vereinfacht.
Konfiguration über Anmerkungen
Shedulers können auch mit Annotationen anstelle einer XML-Konfiguration konfiguriert werden. Dazu werden im Spring Framework mehrere Annotationen bereitgestellt, mit denen Sie Optionen zum Ausführen und Konfigurieren von Aufgaben angeben können.
Eine solche Annotation ist @EnableScheduling , die der Anwendungskonfigurationsklasse hinzugefügt werden muss. Diese Annotation teilt dem Spring Framework mit, dass die Anwendung Annotationen verwendet, um geplante Aufgaben zu definieren.
Sie können die @Scheduled-Annotation verwenden, um geplante Aufgaben zu definieren. Sie kann zu einer Methode hinzugefügt werden, die in bestimmten Abständen ausgeführt werden muss. Wenn Sie beispielsweise jede Minute eine Methode ausführen möchten, können Sie die folgende Annotation angeben:
@Scheduled(cron = "0 * * * * ?")public void myScheduledMethod()/ код, который выполняется каждую минуту>
Mit dem Cron-Parameter können Sie einen Cron-Ausdruck angeben, um zu bestimmen, wie oft eine Aufgabe ausgeführt wird. In diesem Beispiel wird ein Ausdruck angegeben, der angibt, dass die Methode jede Minute ausgeführt wird.
Neben der @Scheduled-Annotation können Sie auch andere Annotationen verwenden, um geplante Aufgaben zu definieren. Beispielsweise können Sie mit @FixedRate eine feste Verzögerung zwischen Methodenausführungen angeben, und mit @FixedDelay können Sie eine Verzögerung nach Abschluss der Methodenausführung angeben.
Die Verwendung von Annotationen ermöglicht daher eine einfache und flexible zeitgesteuerte Konfiguration von Aufgaben im Spring Framework.
Konfiguration über XML
Ein Shedouler im Spring-Framework kann mit einer XML-Konfiguration konfiguriert werden. Dazu müssen Sie eine spezielle XML-Datei erstellen, in der die Parameter und Einstellungen des Shedulers beschrieben werden.
Fügen Sie in der XML-Datei den folgenden Code hinzu:
In diesem Code verwenden wir einen Namespace task, um anzuzeigen, dass wir die Scheduleraufgaben anpassen möchten. Durch das Element task:annotation-driven wir enthalten die Unterstützung für Anmerkungen zur Verarbeitung von Aufgaben.
Dann deklarieren wir eine Bin-Aufgabe, indem wir den vollständigen Klassennamen im Attribut angeben class. In diesem Beispiel ist die Klasse com.mycompany.MyTask wird wie geplant ausgeführt.
Dann erstellen wir eine Instanz des Shedulers mit dem Element task:scheduler. Wir geben den Wert des Attributs an pool-size, um die Anzahl der Threads festzulegen, die zum Ausführen von Aufgaben verwendet werden sollen.
Schließlich definieren wir den Zeitplan für die Ausführung der Aufgabe mit einem Element task:scheduled-tasks. Wir geben Attribute an ref und method, um unsere Aufgabe und Methode anzugeben, die wie geplant ausgeführt wird. Wir geben auch ein Attribut an cron wo wir den Cron-Ausdruck angeben, um den Zeitplan für die Ausführung der Aufgabe zu definieren.
Die XML-Konfiguration ermöglicht daher die flexible Konfiguration des Shedoolers im Spring-Framework und die Verwendung für geplante Aufgaben.
Merkmale der Arbeit eines Schedulers in Spring
Der Frühlings-Scheduler bietet einen praktischen Mechanismus zum Ausführen von geplanten Aufgaben in der Anwendung. Es ermöglicht Ihnen, die Ausführung von Aufgaben zu verwalten und bietet Flexibilität bei der Planung und Kontrolle von Aufgaben.
Ein Merkmal der Arbeit eines Shedulers in Spring ist die Möglichkeit, Anmerkungen zu verwenden, um zu bestimmen, welche Methoden ausgeführt werden. Dazu müssen Sie die Methoden kommentieren, die nach einem Zeitplan ausgeführt werden sollen, und einen Cron-Ausdruck angeben, der die Startzeit angibt. Zum Beispiel die Annotation @Scheduled(cron = "0 0 12 * * ?") gibt an, dass die Methode jeden Tag um 12:00 Uhr ausgeführt werden muss.
Ein weiteres Merkmal des Schedulers ist die Möglichkeit, fixed rate und fixed delay zu verwenden. Fixed rate bestimmt das Intervall zwischen der Ausführung einer Aufgabe, unabhängig von ihrer Dauer. Fixed delay gibt die Verzögerung an, nachdem die vorherige Aufgabe beendet wurde, bevor die nächste ausgeführt wird. Beispielsweise gibt die Annotation @Scheduled(fixedRate = 5000) an, dass die Methode alle 5 Sekunden ausgeführt werden muss.
Darüber hinaus ermöglicht der Shedouler in Spring die Verwendung von Ausdrücken, die periodische Aufgaben definieren. Mit dem Ausdruck @Scheduled(fixedDelayString = "$") können Sie beispielsweise das Intervall zwischen der Ausführung einer Aufgabe durch Parameter aus einer Konfigurationsdatei festlegen. Dadurch können Sie die Ausführungszeiten von Aufgaben in verschiedenen Umgebungen flexibel anpassen.
Der Shedouler bietet auch die Möglichkeit, einen Threadpool zum Ausführen von Aufgaben zu verwenden. Es verwendet standardmäßig einen einzelnen Thread, kann jedoch so konfiguriert werden, dass Aufgaben parallel in mehreren Threads ausgeführt werden. Sie können dazu die Annotation @EnableScheduling verwenden und einen Thread-Pool in der Konfigurationsdatei konfigurieren.
Es ist wichtig, sich daran zu erinnern, dass der Shedouler in Spring innerhalb des Anwendungscontainers ausgeführt wird und einen Spring-Kontext benötigt, damit er funktioniert. Daher müssen Sie sicherstellen, dass der Spring-Kontext vor der Verwendung des Shedulers initialisiert wird.