Task Scheduler im Backend der AppMaster-Anwendung, wie im klassischen Fall des Backends, schafft wiederkehrende Szenarien. Zum Beispiel, wenn Sie eine bestimmte Aktion nach einem Zeitplan durchführen müssen. Ein klassisches Beispiel für solche Aufgaben ist das Bereinigen von temporären Dateien auf dem Server, wöchentliche Backups, das Erstellen von Berichten nach einem bestimmten Algorithmus, usw.
Betrachten wir ein Beispiel für die Verwendung des Aufgabenplaners im AppMaster Anwendungs-Backend. Nehmen wir an, Sie möchten einen Prozess erstellen, der dem Benutzer jeden Morgen um 9.00 Uhr das Wetter an seine Handynummer sendet.
Die Aufgabe wird also in mehrere logische Schritte unterteilt:
- Installation und Konfiguration des Moduls für den Versand mobiler Nachrichten
- Erstellen und Konfigurieren eines externen Anfrage-API-Prozesses
- Einrichten eines Schedulers im Backend der Anwendung
1. Installation und Konfiguration des Moduls für den Versand mobiler Nachrichten: Das Nexmo-Modul ermöglicht es, in die AppMaster-Anwendung die Fähigkeit zu integrieren, SMS-Nachrichten an eine ausgewählte Nummer zu senden.
- API-Schlüssel - API-Schlüssel, den Sie über Ihr Nexmo-Konto erhalten(https://dashboard.nexmo.com/settings);
- API Secret - ein privater Schlüssel, der in Verbindung mit dem API-Schlüssel verwendet wird, um den Benutzer zu identifizieren. Sie können ihn ebenfalls in Ihrem Nexmo-Konto(https://dashboard.nexmo.com/settings) abrufen;
- Von-Nummer - die bei der Registrierung in Ihrem Nexmo-Konto angegebene Nummer.
Die folgenden Geschäftsprozesse werden automatisch mit der Modulinstallation installiert:
- Nexmo.Send SMS - ermöglicht es Ihnen, Nachrichten an die angegebene Nummer über das
Nexmo-Modul:
- Phone [phone] - die Telefonnummer, an die die Nachricht gesendet werden soll;
- Inhalt [string] - Textnachricht;
2. Die kostenlose OpenWeather API Web-Ressource wird als Wetterdatenquelle verwendet(https://openweathermap.org/api). Der erste Schritt ist die Erstellung einer externen Anfrage-API-Vorlage. API-Vorlagen werden im Abschnitt Geschäftsprozess auf der Registerkarte Externe API-Anforderungen angezeigt. Um eine neue Vorlage zu erstellen, klicken Sie auf API-Anfrage erstellen.
Anfragetyp: GET
Abfrageadresse: https://api.openweathermap.org/data/2.5/weather
Abfrage-Parameter:
- Lat [string] - Breitengrad
- Lon [Zeichenfolge] - Längengrad
- Appid [string] - OpenWeather API Schlüssel
Im Rahmen dieser Aufgabe sind wir nur an einigen wenigen Feldern des Antwortkörpers im Hauptteil(https://openweathermap.org/api/one-call-3) interessiert.
- Temp [float] - Temperatur
- Temp_min [float] - minimale Temperatur
- Temp_max [Float] - maximale Temperatur
- Druck [float] - Druck
- Luftfeuchtigkeit [float] - Luftfeuchtigkeit
3. Bevor Sie den Aufgabenplaner einrichten, müssen Sie einen Geschäftsprozess erstellen, der Wetterinformationen über die API empfängt. Der Geschäftsprozess sieht wie folgt aus:
- Make Weather Query Model In - erstellt ein virtuelles Abfrageparameter-Modell. Lon, lat - Koordinaten des gewünschten Ortes, appid - API-Schlüssel des OpenWeather-Dienstes;
- API-Anfrage: Weather - der Geschäftsprozess, der für die Interaktion mit der OpenWeather-API verantwortlich ist
- Expand Weather: Body Model Out - wird benötigt, um das Body-Antwortmodell einzusetzen
- Erweitern Sie Weather: Body Model Out_main - erweitert das Hauptmodell des Body der Anfrage-Antwort Body, um die Temperatur (temp) zu erhalten.
- To String - konvertiert den Wert des Temp-Feldes in einen String-Typ;
- Nexmo: Send SMS - sendet eine Nachricht mit Informationen über die Temperatur (Content) an die angegebene Telefonnummer (Phone)
Richten Sie einen Planer im Abschnitt Geschäftsprozess auf der Registerkarte Planer ein.
Die Einstellungen des Zeitplaners auf der Registerkarte Zeitplan unterscheiden sich je nach Typ.
Betrachten wir jeden von ihnen im Detail
1. Täglich - ermöglicht die Konfiguration von täglichen Zeitplänen
- Zeit - legt die Zeit in UTC+0 fest, zu der der Planer den ausgewählten GP starten wird;
- Wochentage - legt die Wochentage fest, an denen der Planer arbeiten soll;
- Automatisch starten - wenn auf True gesetzt, wird ein neuer GP nicht gestartet, wenn der vorherige nicht abgeschlossen wurde. Standardwert: Falsch.
- Automatisch wiederholen - startet den Prozess automatisch neu, wenn er unterbrochen oder nicht erfolgreich gestartet wurde.
Wiederholung der Verarbeitung fehlgeschlagener Elemente - Anzahl der Versuche, den Prozess neu zu starten;
Warten vor jedem Wiederholungsversuch - Verzögerungszeit vor jedem Versuch, den Prozess neu zu starten;
- Beenden erzwingen - den Prozess zwangsweise beenden, wenn er nicht innerhalb weniger Sekunden abgeschlossen wird. Standardmäßig True. Die Anzahl der Sekunden bis zum Abschluss beträgt standardmäßig 3 Sekunden.
2. Monatlich - monatlicher Planer
- Zeit - legt die Zeit in UTC+0 fest, zu der der Planer den ausgewählten GP starten wird;
- Wochentage - besteht aus zwei Einstellungen:
Wiederholungshäufigkeit:
- Jeder erste
- Jeden zweiten
- Jeden dritten
- Jeden vierten
- Dieser Tag
Wochentag - legt den Tag der Woche fest
- Monat - der Monat wird festgelegt
- Automatischer Start - Wenn diese Option auf True gesetzt ist, wird ein neues PSU nur dann gestartet, wenn es bald fertiggestellt wird. Standardwert: Falsch.
- Automatisch wiederholen - startet den Prozess automatisch neu, wenn er unterbrochen/nicht gestartet wurde
Wiederholung der Verarbeitung fehlgeschlagener Elemente - Anzahl der Prozessneustarts;
Vor jedem erneuten Versuch warten - Verzögerungszeit vor jedem Versuch, den Prozess neu zu starten;
- Force Quit - Beendet einen Prozess, wenn er nicht innerhalb weniger Sekunden abgeschlossen wird. Standardmäßig True. Die Anzahl der Sekunden bis zum Abschluss ist standardmäßig 3 Sekunden.
3. Periodisch - ermöglicht es Ihnen, die Häufigkeit des Zeitplaners flexibel zu konfigurieren
- Jede - die Möglichkeit, die Wiederholbarkeit alle N Sekunden/Minuten/Stunden/Tage einzustellen. Standard: alle 1 Stunde.
- Automatisch starten - wenn auf True gesetzt, wird ein neuer GP nicht gestartet, wenn der vorherige nicht abgeschlossen wurde. Standardwert: Falsch.
- Automatisch wiederholen - startet den Prozess automatisch neu, wenn er unterbrochen oder nicht erfolgreich gestartet wurde.
Fehlgeschlagene Elementverarbeitung wiederholen - Anzahl der Versuche, den Prozess neu zu starten;
Vor jedem Wiederholungsversuch warten - Verzögerungszeit vor jedem Versuch, den Prozess neu zu starten;
- Beenden erzwingen - Beendet den Prozess zwangsweise, wenn er nicht innerhalb weniger Sekunden abgeschlossen wird. Standardmäßig True. Die Anzahl der Sekunden bis zum Abschluss ist standardmäßig 3 Sekunden.
4. Nach dem Starten der Anwendung - der einmalige Task-Planer
- Verzögerung - definiert die Verzögerung zwischen dem Start der Anwendung und dem Hochfahren. Standardwert - 0 Sekunden
- Automatisch wiederholen - startet den Prozess automatisch neu, wenn er unterbrochen/ nicht erfolgreich gestartet wurde
Retry failed items processing - Anzahl der Versuche, den Prozess neu zu starten;
Warten vor jedem Wiederholungsversuch - Verzögerungszeit vor jedem Versuch, den Prozess neu zu starten;
- Beenden erzwingen - Beendet den Prozess zwangsweise, wenn er nicht innerhalb weniger Sekunden abgeschlossen wird. Standardmäßig True. Die Anzahl der Sekunden bis zum Abschluss ist standardmäßig 3 Sekunden.
5. Vor Beendigung der Anwendung - führt den Scheduler jedes Mal aus, wenn die Anwendung beendet wird
- Automatisch wiederholen - startet den Prozess automatisch neu, wenn er unterbrochen/ nicht erfolgreich gestartet wurde
Fehlgeschlagene Verarbeitung von Elementen wiederholen - Anzahl der Versuche, den Prozess neu zu starten;
Vor jedem Wiederholungsversuch warten - Verzögerungszeit vor jedem Versuch, den Prozess neu zu starten;
- Beenden erzwingen - den Prozess zwangsweise beenden, wenn er nicht innerhalb weniger Sekunden abgeschlossen wird. Standardmäßig True. Die Anzahl der Sekunden bis zum Abschluss beträgt standardmäßig 3 Sekunden.
Auf der Registerkarte Params der Scheduler-Einstellungen ist es auch möglich, Parameter an die GP-Eingabe zu übergeben, wenn diese vom Scheduler gestartet wird:
In unserem Beispiel sehen die Planereinstellungen wie folgt aus:
- Die Nachrichten werden jeden Tag um 9 Uhr UTC+0 gesendet.
- Versucht automatisch, den Prozess 3 Mal neu zu starten, mit einer Verzögerung von 10 Minuten zwischen den Versuchen, wenn der Prozess nicht sofort gestartet wurde;
- Zwangsweise Beendigung eines Prozesses, wenn er nicht innerhalb von drei Sekunden abgeschlossen wurde.
Unsere Anwendung lebt und arbeitet im Backend. Damit sie funktioniert, genügt es, sie zu veröffentlichen.