Zeitpläne
Ein Skript von allein laufen lassen — Wiederholungen, feste Zeitpunkte im Kalender, Überwachungsfenster mit Validierung, Zeitzonen und das Nachholen verpasster Ausführungen.
Ein Zeitplan (Cron) lässt ein Skript von allein laufen: jeden Tag um 7:00 Uhr, alle 15 Minuten, am letzten Freitag des Monats oder alle 5 Minuten in einem nächtlichen Fenster, bis die Arbeit des Tages erledigt ist. Ein Skript kann mehrere Zeitpläne haben, jeder mit eigener Uhrzeit, Zeitzone und Argumenten.
Auf dieser Seite verwenden wir den Zeitplan Indicadores diários der App
Kundenverwaltung, der das Skript atualizar_indicadores jeden Tag um
7:00 Uhr ausführt (Zeitzone Europe/Lisbon).
Zeitpläne erstellen und öffnen
Klappen Sie im seitlichen Baum den Knoten des Skripts auf. Die Zeile Zeitpläne zeigt, wie viele es gibt; darunter erscheint jeder Zeitplan mit seinem Namen, der zusammengefassten Uhrzeit und, wenn er ausgeschaltet ist, der Markierung (deaktiviert).
- Zum Erstellen: Klicken Sie auf das + der Zeile Zeitpläne (Neuer Zeitplan). Der Editor öffnet sich in einem neuen Tab.
- Zum Bearbeiten: Klicken Sie auf den Namen des Zeitplans.
- Im Menü ⋮ jedes Zeitplans finden Sie Aktivieren/Deaktivieren und Löschen. Löschen hält den Zeitplan endgültig an, aber die Ausführungshistorie des Skripts bleibt erhalten.

Der Editor hat das Formular links und das Panel Ausführungen rechts (erst nach dem Speichern — siehe Ende der Seite). Oben schaltet der Schalter Aktiv den Zeitplan ein und aus, und Speichern speichert alles.
Die Häufigkeit wählen
Das Feld Häufigkeit bietet drei Karten — drei Naturen von Zeitplänen:
| Karte | Dient für |
|---|---|
| Wiederholen | „Alle N Minuten oder Stunden, ohne Unterbrechung.“ Abfragen, laufende Synchronisationen. |
| Zu festen Zeitpunkten | „Zu einer Tageszeit, an den Tagen, die Sie wählen.“ Der Klassiker: täglich, wöchentlich, monatlich. |
| Überwachungsfenster | „Fragt alle N Minuten zwischen zwei Uhrzeiten ab und hört auf, sobald die Arbeit des Tages erledigt ist.“ |
Unter den Karten tauscht die Abkürzung Den Ausdruck von Hand schreiben die
Bedienelemente gegen ein freies Feld Ausdruck für Cron — für alle, die
schon einen mitbringen. Es akzeptiert 5 oder 6 Felder (mit Sekunden), z. B.:
0 9 * * 1-5. Zurück zu den Bedienelementen macht den Tausch rückgängig.
Wiederholen
- Wählen Sie die Karte Wiederholen.
- Wählen Sie unter Einheit entweder Minuten oder Stunden.
- Bei Minuten legen Sie Alle wie viele Minuten? fest (z. B.: 15). Bei
Stunden legen Sie Zur Minute fest — die Minute jeder Stunde, zu der er
auslöst (z. B.
0läuft um 9:00, 10:00, 11:00 Uhr …).
Zu festen Zeitpunkten
Wählen Sie die Karte Zu festen Zeitpunkten.
Wählen Sie unter Wiederholt sich die Variante:
Option Felder, die erscheinen Jeden Tag (an den gewählten Tagen) Zur Uhrzeit + Tage — sieben Schaltflächen (Mo…So) mit den Abkürzungen Alle, Werktags und Wochenende. Jede Kombination ist möglich: Montag, Mittwoch und Freitag zum Beispiel. Einmal in der Woche Zur Uhrzeit + Wochentag. Einmal im Monat Zur Uhrzeit + Im Monat läuft er (siehe unten). Für den monatlichen Fall hat Im Monat läuft er drei Formen:
Option Beispiel An einem festen Tag Am 1., am 15. … Bei einem Tag des Monats über 28 warnt der Editor: „In Monaten ohne diesen Tag läuft er nicht. Für «letzter Tag» nutzen Sie die eigene Option.“ An einer Position (z. B. letzter Freitag) Position (1., 2., 3., 4., 5. oder letzte) + Wochentag — z. B. der letzte Freitag des Monats. Am letzten Tag des Monats Der 31., 30., 28. oder 29. — je nachdem, was der Monat hat.
Die Zeitzone
Jeder Zeitplan hat eine Zeitzone — die Uhrzeiten, die Sie festlegen, sind
Uhrzeiten dieser Zeitzone, nicht die des Servers. Der Auswähler listet
alle IANA-Zeitzonen auf, mit Suche (z. B.: Berlin, Sao_Paulo). Ein
Zeitplan um 9:00 Uhr in America/Sao_Paulo läuft um 9:00 Uhr São-Paulo-Zeit,
auch wenn der Server in Europa steht — und um die Sommerzeitumstellungen
kümmert sich die Plattform.
Wenn ein Lauf ausfällt
Manchmal vergeht die geplante Uhrzeit ohne Ausführung: Der Server war ausgeschaltet, hat mittendrin neu gestartet, oder die vorherige Ausführung lief noch. Der Abschnitt Wenn ein Lauf ausfällt entscheidet, was mit diesen Fällen geschieht:
| Option | Folge |
|---|---|
| Ignorieren | Holt nichts nach. Der Ausfall wird trotzdem vermerkt (Status Verpasst im Panel Ausführungen). |
| Nur den jüngsten | Holt den letzten ausgefallenen Lauf nach; die früheren werden als verpasst vermerkt. |
| Alle | Holt alle ausgefallenen Läufe nach, in der Reihenfolge, in der sie geplant waren. |
Die nachgeholten Ausführungen erscheinen in der Historie des Skripts mit dem Auslöser Nachholung.
Nota
In einem Überwachungsfenster ist die Einheit des Nachholens der Tag: Nachholen führt die Arbeit des Tages auch dann aus, wenn das Fenster bereits geschlossen ist — es wiederholt nicht jede einzelne Abfrage.
Überwachungsfenster
Die dritte Karte löst ein Muster, das der klassische Cron nicht ausdrücken kann: „Versuche es ab 18:00 Uhr alle 5 Minuten; sobald es klappt, laufe einmal und höre bis morgen auf.“ Typisch, um darauf zu warten, dass eine Datei eintrifft, dass ein Tagesabschluss in einem anderen System endet oder dass eine Tabelle gefüllt ist.

Die Felder:
| Feld | Was es festlegt |
|---|---|
| Alle | Das Abfrageintervall: 1, 2, 3, 5, 10, 15, 20 oder 30 Minuten. |
| Von / Bis | Die Uhrzeiten, zu denen das Fenster öffnet und schließt, in der gewählten Zeitzone. |
| Tage | Die Wochentage, an denen das Fenster existiert (dieselben sieben Schaltflächen und Abkürzungen). |
| Wenn ein Skript einen Fehler wirft, den Rest des Tages anhalten | Eingeschaltet schließt ein Fehler das Fenster bis zum nächsten Tag, statt weiter zu versuchen. |
Ohne weiteres Zutun führt das Fenster das Skript beim ersten Auslösen jedes Tages aus und schließt bis zum nächsten Tag. Die eigentliche Kraft steckt in der Validierung:
Das Skript zur Validierung
Der Abschnitt Skript zur Validierung nimmt ein kleines Stück Python-Code entgegen, das bei jeder Abfrage entscheidet, ob schon ausgeführt werden darf:
- Klicken Sie auf Validierung hinzufügen. Ein Editor öffnet sich in einem Fenster.
- Schreiben Sie eine Funktion
main(input), dieTruezurückgibt (bereit — das Hauptskript läuft einmal und das Fenster schließt bis morgen) oderFalse(noch nicht — es wartet und versucht es im nächsten Intervall). - Verwenden Sie Validierung testen, um sie sofort auszuführen, mit den Argumenten des Zeitplans: Sie sehen das Urteil (Kann ausgeführt werden (läuft 1×) oder Noch nicht — wartet), die Dauer und die Logs.
- Schließen Sie das Fenster und klicken Sie im Editor des Zeitplans auf Speichern.
# Gibt True zurück, sobald die Tagesdatei im internen FTP eingetroffen ist.
from api_manager import db
def main(input):
linha = db("Dados CRM").query_one(
"select count(*) as n from cargas_diarias where dia = date('now')"
)
return bool(linha and linha["n"] > 0)
Die Validierung läuft in derselben Umgebung wie das Hauptskript: Sie
erhält denselben input (Argumente und Kontext) und hat dieselben Dateien,
dieselbe Python-Umgebung und dasselbe SDK (db, http, log, …).
Dica
Code zu haben bedeutet die Validierung zu verwenden — es gibt keinen Schalter. Um nicht mehr zu validieren, klicken Sie auf das × (Die Validierung entfernen): Der Code wird beim Speichern gelöscht und das Hauptskript läuft wieder beim ersten Auslösen des Fensters.
Argumente des Zeitplans
Der Abschnitt Argumente legt Name/Wert-Paare fest, die bei allen
Ausführungen dieses Zeitplans in input["args"] beim Skript ankommen — genau
wie bei der manuellen Ausführung kommen die Werte als Text an. So bedient
dasselbe Skript zwei verschiedene Zeitpläne: ein tägliches exportar mit
{"ambito": "dia"} und ein monatliches mit {"ambito": "mes"}, zum Beispiel.
Speichern, aktivieren, beobachten
- Speichern erstellt (oder aktualisiert) den Zeitplan. Die Schaltfläche wird erst aktiv, wenn der Name ausgefüllt und die Uhrzeit gültig ist.
- Der Schalter Aktiv oben schaltet ein und aus, ohne etwas zu löschen — im Baum zeigt ein ausgeschalteter Zeitplan (deaktiviert).
- Ein aktiver Zeitplan eines Skripts im Entwurf läuft nicht: Die Termine bleiben Übersprungen, mit dem Hinweis „Das Skript ist im Entwurf“.
Das Panel Ausführungen
Nach dem Speichern zeigt die rechte Seite des Editors das Panel Ausführungen — der Zeitplan von außen betrachtet, live aktualisiert:
- Die erste Zeile sagt, ob die Zeitplan-Maschine dieser Installation lebt („Scheduler aktiv · letzte Prüfung vor Ns“). Läuft sie nicht, erscheint eine deutliche Warnung — die vorgesehenen Uhrzeiten existieren, aber niemand wird sie einhalten, solange der Scheduler nicht startet. Sprechen Sie in diesem Fall mit der Person, die die Installation verwaltet.
- Darunter die Liste der Termine — jede geplante Uhrzeit und ihr Status:
| Status | Bedeutet |
|---|---|
| Ausstehend | Zukünftige Uhrzeit, noch nicht erfüllt. |
| Läuft | Die Ausführung findet gerade statt. |
| Erledigt | Sie ist gelaufen. |
| Verpasst | Sie ist ausgefallen und die Regel lautet Ignorieren (oder sie war nicht mehr nachholbar). Der Grund erscheint in der Zeile. |
| Übersprungen | Sie ist gar nicht erst gelaufen — z. B.: Skript im Entwurf oder Überschneidung mit der vorherigen Ausführung. |
Bei einem Zeitplan mit Validierung öffnet ein Klick auf einen Termin die Versuche der Prüfung: jede Abfrage mit ihrem Urteil (bereit, noch nicht oder Fehler) und der Meldung. Serien von „noch nicht“ erscheinen eingeklappt — „12 Versuche ohne Neues“ —, damit die drei Zeilen, auf die es ankommt, nicht darin untergehen.

Häufige Fragen
Ich habe den 31. eingestellt und in manchen Monaten läuft er nicht. Das ist das Verhalten von An einem festen Tag: In Monaten ohne diesen Tag läuft er nicht — der Editor warnt, wenn Sie den 29., 30. oder 31. wählen. Für „Monatsende“ verwenden Sie Am letzten Tag des Monats.
Die Ausführung um 9:00 Uhr erschien als Übersprungen (Überschneidung). Die vorherige Ausführung lief noch, als die neue Uhrzeit kam. Die Plattform lässt denselben Zeitplan nie zweimal gleichzeitig laufen. Passiert das häufig, vergrößern Sie das Intervall oder verringern Sie die Arbeit pro Ausführung.
Die Validierung gab True zurück, aber das Hauptskript lief nur einmal — die Bedingung bleibt wahr.
Das ist Absicht: Wenn die Validierung True zurückgibt, läuft das Hauptskript
einmal und das Fenster schließt bis zum nächsten Tag. Ohne das würde eine
Bedingung, die wahr bleibt, das Skript bis zum Ende des Fensters im Kreis
laufen lassen.
Die Uhrzeit hat gewechselt (Sommer-/Winterzeit) — muss ich die Zeitpläne anpassen? Nein. Die Uhrzeiten werden in der Zeitzone des Zeitplans ausgelegt; um die Umstellung kümmert sich die Plattform.