Scheduler

Stellen Sie sich vor, Sie betreiben einen Online-Shop für Kleidung. Kauft ein Kunde das letzte Stück, sinkt der Bestand dieses Produkts auf 0. Um es wieder zu verkaufen, müssen Sie beim Lieferanten eine Bestellung aufgeben. Nehmen wir an, der Lieferant hat im Internet eine Annahmestelle für Bestellungen offen: Rufen Sie eine festgelegte Adresse auf, wird die Bestellung entgegengenommen. Nehmen wir außerdem an, die Aufgabe, Produkte mit Bestand 0 herauszusuchen und diese Annahmestelle aufzurufen, haben Sie bereits als Script angelegt. Dennoch bleibt ein Problem. Sie brauchen jemanden, der dieses Script einmal am Tag anstößt.

Ein Scheduler übernimmt die Rolle dieser Person. Legen Sie einmal fest „Führe dieses Script täglich zur selben Uhrzeit aus", führt WEEGLOO es von da an von selbst aus, sobald diese Uhrzeit erreicht ist. Niemand muss dafür einen Bildschirm öffnen.

Man kann das mit dem Stellen eines Weckers vergleichen. Legen Sie einmal fest, wann er klingeln soll, klingelt er von da an jeden Tag zu dieser Uhrzeit von selbst. Auf dieser Seite sehen wir uns am Beispiel der „Nachbestellung" eines Kleidungs-Shops an, was Sie bei einem Scheduler festlegen, wie Sie die Uhrzeit schreiben und mit wessen Berechtigung er ausgeführt wird.

Drei Dinge, die Sie festlegen

Bei einem einzelnen Scheduler legen Sie nicht viel fest.

  • Name: dient dazu, ihn später in der Liste wiederzuerkennen. Beispiel: Nachbestellung.
  • Auszuführendes Script: Sie wählen ein einzelnes Script aus, das zur festgelegten Zeit ausgeführt wird. Ein einzelner Scheduler führt nur ein einziges Script aus.
  • Wann er läuft: wird unten unter So schreiben Sie, wann er läuft behandelt.

Dazu kommt noch ein Schalter zum Ein- und Ausschalten. Schalten Sie ihn aus, bleibt der Scheduler gespeichert und wird nur nicht ausgeführt. So müssen Sie ihn nicht löschen, wenn Sie ihn vorübergehend anhalten müssen, etwa während der Lieferant geschlossen hat.

Das auszuführende Script lässt sich später nicht mehr ändern. Um ein anderes Script laufen zu lassen, legen Sie einen neuen Scheduler an. Name, Uhrzeit sowie das Ein- und Ausschalten können Sie jederzeit ändern.

So schreiben Sie, wann er läuft

Die Uhrzeit schreiben Sie in fünf Stellen. Von links sind das Minute, Stunde, Tag, Monat, Wochentag, und * bedeutet „alle".

Minute  Stunde  Tag  Monat  Wochentag
0       9       *    *      *          → täglich um 9:00 Uhr

Häufig verwendete Formen sehen so aus.

AngabeWann er läuft
0 0 * * *täglich um 0
Uhr
30 9 * * *täglich um 9
Uhr
0 * * * *zu jeder vollen Stunde
*/10 * * * *alle 10 Minuten
0 0 * * 1jeden Montag um 0
Uhr
0 0 1 * *am 1. jedes Monats um 0
Uhr

Die Uhrzeit wird als Weltzeit (UTC) gelesen. Sie ist nicht die Ortszeit. Legen Sie deshalb zuerst fest, zu welcher Ortszeit er laufen soll, und rechnen Sie dann die Zeitverschiebung ein. In einer Region, die der Weltzeit 9 Stunden voraus ist, entspricht 9 Uhr morgens dort dem Wert 0 0 * * *. Die Nachbestellung läuft mit diesem Wert, also um 0

Uhr Weltzeit.

Bei Uhrzeiten, die einen Tag oder Wochentag enthalten, kann diese Umrechnung sogar den Tag verschieben; prüfen Sie das also noch einmal.

Ein Wert, der niemals ausgeführt würde, wird nicht gespeichert. 0 0 30 2 * verweist zum Beispiel auf den 30. Februar, doch diesen Tag gibt es nicht, und beim Speichern erhalten Sie deshalb die Rückmeldung, den Wert noch einmal zu prüfen.

Mit wessen Berechtigung er läuft

Wenn ein Scheduler ein Script ausführt, wird diese Ausführung so behandelt, als hätte sie die Person, die diesen Scheduler erstellt hat, vorgenommen. Auch dass das Script „Nachbestellung" Produkte liest und den Lieferanten aufruft, geschieht mit der Berechtigung dieser Person.

Um einen Scheduler zu erstellen oder zu ändern, brauchen Sie deshalb zwei Berechtigungen zugleich.

  • Die Rolle (SpaceRole) muss die Berechtigung besitzen, Scheduler einzurichten.
  • Sie müssen die Berechtigung haben, das Script auszuführen, das dieser Scheduler ausführen soll.

Die zweite wird nicht nur beim Erstellen, sondern auch beim Ändern geprüft. Denn die Ausführungszeit zu ändern bedeutet festzulegen, wann dieses Script ausgeführt wird, und einen ausgeschalteten Scheduler einzuschalten bedeutet, die Ausführung zu starten.

Verliert die erstellende Person diese Berechtigung später, wird der Scheduler ausgeschaltet. Scheidet die zuständige Person aus dem Team aus oder wird ihre Rolle enger gefasst, stellt WEEGLOO das zur nächsten Ausführungszeit fest und schaltet den Schalter aus, ohne den Lauf auszuführen. Kommt die Berechtigung zurück, schaltet sich der Schalter nicht von selbst wieder ein, Sie müssen ihn also selbst erneut einschalten.

Das Ausführungsprotokoll einsehen

Jedes Mal, wenn ein Scheduler läuft, entsteht ein Protokolleintrag. Ob dieser Lauf erfolgreich war oder fehlgeschlagen ist, bleibt hier festgehalten. Ob die Bestellung von gestern Nacht tatsächlich hinausgegangen ist, prüfen Sie anhand dieses Protokolls.

In der Liste erscheinen der Ausführungszeitpunkt und das Ergebnis jedes Laufs. Klicken Sie auf einen Lauf, der unterwegs fehlgeschlagen ist, sehen Sie den Grund dafür unverändert im Fehlerbereich des Detailbildschirms. Er erscheint zusammen mit der benötigten Zeit, sodass Sie anhand dieses Textes unterscheiden können, ob die Annahmestelle des Lieferanten nicht geantwortet hat oder ob ein anderes Problem vorlag.

Das Protokoll einer erfolgreichen Ausführung verschwindet nach 1 Stunde, das einer fehlgeschlagenen nach 3 Tagen. Der fehlgeschlagene Teil bleibt länger erhalten, weil man später genau diese Einträge nachsieht. Werte, die länger erhalten bleiben müssen, etwa der Bestellverlauf, speichern Sie innerhalb des Script als Content.

Auch bei einem Fehlschlag hält der Scheduler nicht an. Schlug ein Lauf fehl, weil die Annahmestelle des Lieferanten kurz nicht antwortete, wird nur dieser eine Lauf als Fehlschlag protokolliert, und zur nächsten Ausführungszeit läuft er erneut.

Was ihn von einem Webhook unterscheidet

Beide führen ein Script aus, ohne dass ein Mensch es anstößt, darin gleichen sie sich. Der Unterschied liegt darin, was die Ausführung auslöst.

  • Ein Webhook wird ausgeführt, wenn etwas geschieht. Wenn ein Produkt angelegt wird, wenn ein Inhalt veröffentlicht wird.
  • Ein Scheduler wird ausgeführt, wenn eine Uhrzeit erreicht ist. Auch wenn nichts geschieht, jeden Tag zu dieser Uhrzeit.

Auf den ersten Blick scheint für die Nachbestellung ein Webhook das Richtige zu sein. Man müsste ja genau in dem Moment bestellen, in dem der Bestand auf 0 fällt. Fällt der Bestand desselben Produkts jedoch innerhalb eines Tages auf 0, kommt durch eine Rückgabe wieder zurück und fällt dann erneut auf 0, geht jedes Mal eine Bestellung hinaus. Sieht man einmal am Tag gesammelt nach, gibt es je Produkt nur eine Bestellung. Aufgaben, die nicht „bei jedem Eintreten", sondern „gesammelt auf einmal" erfolgen müssen, sind der Platz eines Scheduler.

Umgekehrt ist das Füllen der Beschreibung in dem Moment, in dem ein Produkt angelegt wird, ein Fall für einen Webhook, denn es gibt keinen Grund, es aufzuschieben.

Wissenswertes

  • Die Anzahl ist begrenzt. Wie viele Scheduler eine einzelne Organization besitzen kann, ist je nach Tarif festgelegt (Free 1, Basic 5, Pro 30, Enterprise unbegrenzt). Ist die Grenze erreicht, lässt sich kein neuer mehr erstellen; löschen Sie einen nicht genutzten, wird ein Platz wieder frei.
  • Die Ausführungen werden mit Script gemeinsam gezählt. Da ein Scheduler nichts anderes tut, als ein Script auszuführen, verbraucht jeder Lauf eine Script-Ausführung Ihres Tarifs. Für Scheduler allein gibt es keine gesonderte Grenze. Ist dieses Kontingent aufgebraucht, wird ein danach fällig werdender Scheduler nicht ausgeführt, sondern ausgeschaltet. In diesem Fall bleibt im Ausführungsprotokoll festgehalten, warum er nicht starten konnte. Auch mit dem nächsten Monat schaltet er sich nicht von selbst wieder ein, Sie müssen ihn also selbst erneut einschalten.
  • Verpasste Ausführungen werden nicht nachgeholt. Wurde etwa wegen einer Wartung ein Tag ausgelassen, läuft er am nächsten Tag nicht zweimal. Ab der nächsten Ausführungszeit läuft er wieder.
  • Ein Script, das ein Scheduler verwendet, lässt sich nicht löschen. Das gilt auch dann, wenn dieser Scheduler ausgeschaltet ist. Löschen Sie zuerst diesen Scheduler und dann das Script.

Verwaltung im Content Studio

Scheduler erstellen und verwalten Sie im Scheduler-Bildschirm des Content Studio. In der Liste erscheint jeder angelegte Scheduler in je einer Zeile, zusammen mit dem Namen, dem Namen des auszuführenden Script, dem cron-Ausdruck, Nächste Ausführung, dem Status, dem Änderungszeitpunkt und der Person, die ihn geändert hat.

Scheduler-Listenbildschirm. „Nachbestellung" ist in einer Zeile mit Name, Script, cron-Ausdruck, Nächste Ausführung und Status Active zu sehen. Über der cron-Spalte steht UTC, über der Spalte Nächste Ausführung steht UTC±N

Der Bildschirm zeigt außerdem, welche Uhr für welche Spalte gilt. Über der Spalte mit dem cron-Ausdruck steht UTC, über der Spalte Nächste Ausführung steht die Zeitzone der Person, die den Bildschirm ansieht, in der Form UTC±N. So sehen Sie den gespeicherten Wert und die Uhrzeit, die er in Ihrer eigenen Zeit ergibt, in derselben Zeile. In Zeitzonen, die hinter der Weltzeit liegen, kann bei Nächste Ausführung der Vortag erscheinen.

Einen neuen Scheduler legen Sie über die Schaltfläche Erstellen oben rechts in der Liste an.

  1. Klicken Sie oben rechts in der Liste auf die Schaltfläche Erstellen.
  2. Geben Sie in das Namensfeld Nachbestellung ein.
  3. Lassen Sie Aktiv eingeschaltet. Ist es ausgeschaltet, wird der Scheduler zwar gespeichert, aber nicht ausgeführt.
  4. Wählen Sie unter Auszuführendes Script das Script „Nachbestellung" aus.
  5. Wählen Sie unter Zeitplan die Option Eigene Eingabe aus.
  6. Geben Sie in die fünf Stellen 0 0 * * * ein.
  7. Klicken Sie oben rechts auf die Schaltfläche Erstellen, um zu speichern.

Der Bildschirm zeigt außerdem sofort, wann der eingegebene Ausdruck tatsächlich läuft. Zusammen mit dem Hinweis, dass ein selbst eingegebener Ausdruck als Weltzeit (UTC) gespeichert wird, erscheint eine Vorschau des zu speichernden cron-Werts und des nächsten Ausführungszeitpunkts.

Bildschirm zum Anlegen eines neuen Scheduler. Name „Nachbestellung", Aktiv eingeschaltet, Auszuführendes Script „Nachbestellung", im Zeitplan-Tab „Eigene Eingabe" ist 0 0 * * * eingetragen

Klicken Sie in der Liste auf einen Scheduler, öffnet sich der Detailbildschirm dieses Scheduler. Der Detailbildschirm ist in die zwei Tabs Ausführungslog und Einstellungen geteilt, und beim Öffnen erscheint zuerst Ausführungslog. Im Tab Ausführungslog steht jeder bisherige Lauf in je einer Zeile, und je Zeile sehen Sie Ausgeführt am, das Ergebnis und die Anfrage-ID, die diesen Lauf bezeichnet. Über die Auswahlliste Ergebnis können Sie nur die erfolgreichen oder nur die fehlgeschlagenen Läufe herausfiltern, und mit Logs Aktualisieren werden die Einträge bis hin zum gerade gelaufenen Durchgang neu eingelesen.

Tab Ausführungslog im Scheduler-Detailbildschirm. Drei Läufe von „Nachbestellung" (2 Fehlschläge, 1 Erfolg) sind in den Spalten Ausgeführt am, Ergebnis und Anfrage-ID zu sehen

Klicken Sie auf einen Lauf, öffnet sich das Detail dieses Laufs. Hier erscheinen neben dem Ergebnis auch der Statuscode, die benötigte Zeit (Dauer) und die Identität, mit der dieser Lauf ausgeführt wurde (Run as); bei einem fehlgeschlagenen Lauf steht der Grund unverändert im Bereich Fehler. Oben gibt es Kennzeichen, die anzeigen, zu welchem Scheduler dieser Lauf gehört und welches Script er ausgeführt hat, dazu einen Link zu diesem Script und den Link Im Script-Log ansehen, mit dem Sie denselben Lauf im Protokoll auf der Seite des Script ansehen.

Detailbildschirm des Scheduler-Ausführungslogs (fehlgeschlagener Lauf). Neben Ausgeführt am und Anfrage-ID erscheinen Ergebnis Failure, Statuscode, Dauer und Run as, und im Bereich Fehler ist der Grund für den Fehlschlag zu sehen

Nächste Schritte

  • Script: behandelt, wie Sie das Script erstellen, das ein Scheduler ausführt, und wie Sie darin Aktionen unterbringen, die einen externen Dienst aufrufen, etwa die Annahmestelle des Lieferanten.
  • Webhook: behandelt, wie Sie etwas nicht zu einer festgelegten Uhrzeit, sondern beim Eintreten einer festgelegten Änderung ausführen lassen.
  • Rollen und Berechtigungen: behandelt, wie Sie die Berechtigung zum Einrichten von Scheduler und die Berechtigung zum Ausführen von Script einer Rolle zuweisen.