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.

 

Features

Der Job Scheduling Service von SAP bietet folgende Features an:

  • Flexible Zeitplanformate verwenden: Es ist eine flexible Wahl des Plandatumsformats zwischen Cron- und menschenlesbaren Formaten möglich
  • Sicheren Zugang erhalten: Die Ausführung von Aufträgen im Namen einer Anwendung, die durch eine OAuth 2.0-geschützte Kommunikation gesichert ist und verwendet wird, wenn der Dienst den Aktionsendpunkt aufruft und wenn die Anwendung die REST-APIs der Dienste aufruft, ist möglich
  • Synchron oder asynchron planen: Aufträge können synchron oder asynchron definiert und verwaltet werden und langlaufende CF-Aufgaben können asynchron ausgeführt werden
  • Optimieren Sie Ihren Ressourcenverbrauch: Durch die asynchrone Ausführung von Cloud Foundry-Aufgaben kann die Nutzung der Ressourcen optimiert werden
  • Applikation und Planungslogik sind getrennt: Anhand von REST-APIs können CRUD-Vorgänge mit Aufträgen und Zeitplänen ausgeführt und Laufprotokolle von ausgeführten Zeitplänen abgerufen werden
  • Dashboard zur Verwaltung von Aufträgen und Aufgaben: Durch die webbasierte Benutzeroberfläche können Aufträge und Aufgaben für eine Serviceinstanz erstellt, bearbeitet und gelöscht werden. Erstellen, verwalten und überwachen Sie Zeitpläne für Ihre Aufträge oder Aufgaben im Dashboard und überprüfen Sie die Protokolle, um festzustellen, ob ein Zeitplan erfolgreich ausgeführt wurde
  • Unterstützt Node-js Client-Bibliotheken: Eine komfortable Client-Bibliothek zur Ausführung von CRUD-Operationen, einschließlich der Erstellung von Aufträgen, aus der Node.js-Anwendung ist möglich

 

Konzept

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:

  • Job:Eine Reihe von Zeitplänen mit jeweils einem Aktionsendpunkt
  • Aktion Endpunkt: Ein HTTP- oder REST-Endpunkt, der von der Anwendung bereitgestellt und vom SAP Job Scheduling Service aufgerufen wird, um die definierte Aktion durchzuführen
  • Cloud Foundry Aufgabe: Eine Anwendung oder ein Skript, dessen Code in einer bereitgestellten Anwendung enthalten ist, aber unabhängig in einem eigenen Container mit minimalen Ressourcen läuft
  • Zeitplan: Eine einmalige oder wiederkehrende Einheit innerhalb eines Auftrags, die keinen Aktionsendpunkt besitzt
  • Mehrmandantenfähigkeit: Der Dienst kann mit mandantenfähigen Anwendungen genutzt werden, die als Platform-as-a-Service (PAAS)-Mieter oder als Software-as-a-Service (SaaS)-Mieter entwickelt wurden

 

Asynchronous Mode

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.

 

Schedule Types

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:

  • Von Menschen lesbarer Text: Ein von Menschen lesbarer Text, der die angegebene Ausführungszeit angibt
  • Formate für Datumszeichenfolgen: Eine gültige Datumsdarstellung im ISO-8601- oder IETF-konformen RFC 2822-Format.

 

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:

  • repeatInterval: Gibt das Intervall zwischen den Zeitplänen in einem für Menschen lesbaren Textformat an (z. B. „5 Minuten“). Wenn es zu einer Verzögerung kommt, z. B. weil die Last sehr groß ist und der Lauf länger dauert, beginnt der nächste Lauf zu einem späteren Zeitpunkt. Das definierte Intervall bleibt dabei gleich
  • cron: Bezeichnet einen crontab-Ausdruck, der eine Reihe von Zeiten darstellt, die bestimmen, wann der Job ausgeführt wird
  • repeatAt: Gibt die genaue Uhrzeit an, zu der ein Auftrag jeden Tag ausgeführt wird. Dieses Feld kann in den Formaten „Human-Readable Time Format“ und „Date String Formats“ (ISO-8601 oder IETF-konform RFC-2822) angegeben werden, zum Beispiel „4.40pm“

 

Schedule Formats

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.

  • Date Object: Ein obligatorisches Datumsfeld, welches das Datum als Zeichenkette angibt und ein optionales Formatfeld, das ein Datums-/Zeitformat angibt, sind für Objektdatentypen erforderlich, um vom Benutzer bereitgestellte Datumswerte korrekt zu analysieren.
    Für Objektformate gelten die folgenden Einschränkungen:
    Wenn Sie nur ein Datumsfeld angeben, wird die Zeichenfolge gemäß den ISO-8601-Standards sowie den IETF-konformen RFC 2822-Zeitstempeln validiert.
    Eine optionale Formatzeichenfolge kann angegeben werden, wenn die Datumszeichenfolge im Datumsfeld ein benutzerdefiniertes Format hat. In der folgenden Liste sind die zulässigen Parsing-Tokens aufgeführt:

 

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

 

  • Date String: Die Parameter für einen String-Datentyp müssen eine legitime Datumsdarstellung sein, die RFC 2822 oder ISO-8601 entspricht.
    Zum Beispiel: 1994-11-05T08:15:30-05:00

 

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

  • Time

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“

  • RepeatAt

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“

  • RepeatInterval

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“

 

 

Schedule Lifecycle

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.

 

Mögliche Kombinationen

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.

 

Status der Aktionen

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.

 

 

Fazit

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.