01.12.2022 | Khang Nguyen
Mit dem Job Scheduling Service von SAP können Sie Jobs definieren und verwalten, die einmalig oder periodisch ausgeführt werden. Dieser laufzeitunabhängige Dienst kann verwendet werden, um lang andauernde Prozesse mit Aktionsendpunkten oder Cloud Foundry-Aufgaben in Ihrer Anwendung zu planen.
Der Job Scheduling Service von SAP BTP, umgesetzt als REST-API, wird verwendet, um Jobs zu planen, einschließlich asynchroner Jobs mit langer Laufzeit, und zum Erstellen mehrerer Zeitplantypen für einfache und komplexe wiederkehrende Zeitpläne. Jobs, Aufgaben und Zeitpläne können über eine webbasierte Benutzeroberfläche verwaltet werden.
Der Job Scheduling Service von SAP bietet folgende Features an:
Mit dem SAP Job Scheduling Service können Sie Aktionsendpunkte in Ihrer Anwendung oder langlaufende Prozesse mithilfe von Cloud Foundry-Tasks flexibel planen. Folgende Begriffe sind hier wichtig zu kennen:
Der Job Scheduling Service von SAP führt Jobs, die Aktionsendpunkte unterstützen, in einem synchronen oder asynchronen (oder Batch) Modus aus.
Synchroner Modus: Synchrone Anfragen werden verwendet, wenn der SAP Job Scheduling Service den Aktionsendpunkt der Anwendung aufruft und die Anwendungslogik in einer kurzen Zeitspanne ausgeführt wird.
Asynchroner Modus: Asynchrone Jobs werden für lang andauernde Aufträge verwendet.
Der Job Scheduling Service von SAP führt einmalige und wiederkehrende Aufträge oder Cloud Foundry-Aufgaben aus.
Einmalige Zeitpläne
Zeitpläne, die nur einmal ausgeführt werden. Sie können einmalige Zeitpläne mit einer der folgenden Optionen erstellen:
Wiederkehrende Zeitpläne
Zeitpläne, die periodisch zu bestimmten Zeiten, einem bestimmten Datum oder in Intervallen ausgeführt werden. Sie können wiederkehrende Zeitpläne mit einer der folgenden Optionen erstellen:
Cron Format
Sie können den Zeitplan für die Auftragsausführung im cron-Format festlegen.
Die Struktur ähnelt dem Standard-Linux-Cron, bietet jedoch zusätzliche funktionale Flexibilität für die Planung anwendungsbasierter Aufgaben. Die folgende Tabelle gibt einen Überblick über die Hierarchie der Feldverwendung im Cron und enthält eine Liste der zulässigen Werte für jedes Feld:
Cron Feld (links nach rechts) | Beschreibung |
Year | 4-stellige Darstellung der Jahreszahl. Beispiel: 2015 |
Month | Numerische Darstellung für einen Monat. Zulässige Werte sind 1 bis 12 |
Day | Numerische Darstellung für den Tag des Monats mit zulässigen Werten von -31 bis 31. Negative Werte werden vom Ende des Monats an berechnet |
DayOfWeek | 3-Buchstaben-Darstellung für den Tag der Woche. Beispiel: mon, tue, usw |
Hour | Numerische Darstellung für eine Stunde. Zulässige Werte sind 0 bis 23 |
Minute | Numerische Darstellung für eine Minute. Zulässige Werte sind 0 bis 59 |
Second | Numerische Darstellung für eine Sekunde. Zulässige Werte sind 0 bis 59 |
Die Syntax für die Definition von Cron-Ausdrücken ist in der folgenden Tabelle aufgeführt:
Ausdruck | Verwendung | Wert |
* | überall | beliebiger Wert |
*/a | überall | jeder a-te Wert |
a:b | überall | Werte im Bereich von a bis b |
a:b/c | überall | Jeder c-te Wert zwischen a und b |
a.y | Day of the week | Am a-ten Auftreten des Wochentags y (a = -5 bis 5) |
a,b,c | überall | a oder b oder c |
Datum & Zeit Format
Als Datentyp String oder Objekt können Sie Datums- und Zeitparameter wie startTime, endTime oder Zeit für Zeitpläne angeben.
Eingabe-Token | Beispiel | Beschreibung |
YYYY | 2015 | 4-stelliges Jahr |
YY | 14 | 2-stelliges Jahr |
Q | 1-4 | Quartal Jahr. Setzt den Monat auf den ersten Monat des Quartals. |
M MM | 1-12 | Monat Nummer |
MMM MMMM | Januar-Dez | Monatsname in der jeweiligen Sprache |
D DD | 1-31 | Tag des Monats |
Do | 1st-31st | Tag des Monats mit Ordnungszahl |
DDD DDDD | 1-365 | Tag des Jahres |
X | 1410715640.579 | UNIX-Zeitstempel |
X | 1410715640579 | UNIX-Zeitstempel (ms) |
gggg | 2015 | Region 4-stellige Woche Jahr |
gg | 15 | Region 2-stellige Woche Jahr |
w ww | 1-53 | Lokale Woche im Jahr |
e | 1-7 | Lokaler Wochentag |
GGGG | 2015 | ISO-4-stelliges Wochenjahr |
GG | 15 | ISO 2-stelliges Wochenjahr |
W WW | 1-53 | ISO-Woche des Jahres |
E | 1-7 | ISO-Wochentag |
H HH | 0-23 | 24-Stunden-Zeit |
h hh | 1-12 | 12-Stunden-Zeit mit "a A" benutzt |
a A | am pm | Vor oder nach dem Mittag |
m mm | 0-59 | Minuten |
s ss | 0-59 | Sekunden |
S | 0-9 | Zehntelsekunden |
SS | 0-99 | Hundertstel einer Sekunde |
SSS | 0-999 | Tausendstel einer Sekunde |
Z ZZ | +12:00 | Abweichung von UTC als +-HH:mm, +-HHmm, oder Z |
Von Menschen lesbare Datumsformate
Bei der Konfiguration von Arbeits- und Aufgabenplänen stellt der SAP Job Scheduling Service menschenlesbare Daten und Bereiche zur Verfügung.
Die Parameter time, repeatAt und repeatInterval sind für diese Daten und Bereiche anwendbar. Der SAP Job Scheduling Service verwendet für diese Funktion einen eingebauten Datums-Parser in englischer Sprache.
Spezifikation für Zeitplanungsparameter
Ein bestimmter Zeitstempel sollte durch den String-Wert angegeben werden, wenn ein Arbeitsplan gestartet wird.
Beispiel: "10 hours from now", "next week monday at 5am", "9pm tonight"
Dieser Parameter stellt eine praktische Methode zur Erstellung von Tagesplänen mit Zeitstempel dar. Die Zeichenfolge sollte einen bestimmten Zeitstempel angeben, zu dem ein Arbeitsplan regelmäßig ausgeführt wird. Die Struktur ist dieselbe wie bei den Vorschlägen für den time-Parameter, mit einem Unterschied: repeatAt muss einen Zeitstempel angeben, der jeden Tag gültig und konstant ist, während der Text für den time-Parameter etwas Bestimmtes und in der Zukunft Liegendes bezeichnen muss.
Beispiel: "4.40pm", "18.40", "6.20am", "17.20:30"
Mit diesem Parameter muss ein Intervall für die Wiederholung des Auftrags angegeben werden. Die folgenden Zeiteinheiten werden für diesen Parameter unterstützt: "Jahre", "Monate", "Wochen", "Tage", "Stunden", "Minuten" und "Sekunden".
Beispiel: "10 hours", "2 days", "5 minutes"
Bei jedem Lauf durchläuft ein Zeitplan drei Lebenszykluszustände.
In der folgenden Tabelle sind die Lebenszyklusstatus aufgeführt:
Status | Beschreibung |
Scheduled | Der Zeitplan wurde für einen späteren Lauf in die Warteschlange gestellt. |
Running | Der Zeitplan wird derzeit ausgeführt. |
Completed | Der Planungslauf ist abgeschlossen. |
Für jeden Lebenszyklus-Zustand gibt es einen Übergangszustand. Sie können den Zeitplanlauf anhand der Kombination dieser Zustände untersuchen und nachvollziehen. Die Zeitplanprotokolle enthalten die mit jedem Zeitplan verbundenen Statusinformationen.
Die folgende Tabelle enthält Beschreibungen der einzelnen Kombinationen:
Status | Übergangsstatus | Beschreibung |
Scheduled | Scheduled | Der Zeitplan wurde für einen späteren Lauf in die Warteschlange gestellt. |
Running | Triggered | Der Scheduler hat eine Anfrage an den Endpunkt der Job-Aktion ausgelöst. |
ACK_RECVD | Die Anwendung sendet eine "202-Accepted"-Nachricht und bestätigt damit die vom Scheduler gesendete Anfrage. | |
ACK_NOT_RECVD | Auch nach einer gewissen Zeit hat die Anwendung noch keine "202-Accepted"-Nachricht zur Bestätigung der vom Scheduler gesendeten Anfrage gesendet. | |
Completed | Request_Error | Fehler beim Aufrufen des Endpunkts der Auftragsaktion. |
Success | Die Anwendung hat den Auftrag erfolgreich ausgeführt und mit einem Statuscode (von 200 bis 399, außer 202-ACCEPTED) an den Scheduler geantwortet. | |
Error | Die Anwendung ist während der Ausführung auf einen Fehler gestoßen und hat einen der in der Spezifikation des HTTP-Protokolls beschriebenen Server-Fehlercodes gesendet. | |
Unknown | Die Anwendung hat die Job Run Log Update API nicht aufgerufen, um den Scheduler über den Status der Jobausführung zu informieren. Der Status wird nach einem konfigurierbaren Zeitintervall auf UNKNOWN gesetzt. |
In der folgenden Tabelle können Sie mehr über den Status der mit Cloud Foundry-Aufgaben verbundenen Aktionen erfahren:
Status | Übergangsstatus | Beschreibung |
Scheduled | Scheduled | Der Zeitplan wurde für einen späteren Lauf in die Warteschlange gestellt. |
Running | Triggered | Der Scheduler hat eine Anfrage an den Cloud Controller zur Erstellung von Cloud Foundry-Aufgaben ausgelöst. |
ACK_RECVD | Der Cloud Controller erstellt erfolgreich eine Aufgabe. | |
Completed | Request_Error | Der Cloud Controller erstellt erfolgreich eine Aufgabe. |
Success | Cloud Foundry-Aufgabe erfolgreich abgeschlossen. | |
Failed | Die Aufgabe wurde nicht erfolgreich abgeschlossen, was zu einem Exit-Code ungleich Null führte. | |
Unknown | Die Aufgabe war für den SAP Job Scheduling Service nicht verfügbar, um den Status abzuholen. |
Wir hoffen, Ihnen mit unserem Beitrag einen übersichtlichen Einblick in den Job Sceduling Service von SAP gegeben zu haben.
Falls Sie nun noch weitere Fragen zum Thema haben, melden Sie sich! Unsere Berater helfen Ihnen gerne weiter.