Planningen
Een script zelfstandig laten draaien — herhalingen, vaste momenten in de kalender, bewakingsvensters met validatie, tijdzones en het inhalen van gemiste uitvoeringen.
Een planning (cron) laat een script zelfstandig draaien: elke dag om 7.00 uur, om de 15 minuten, op de laatste vrijdag van de maand, of om de 5 minuten in een nachtelijk venster totdat het werk van de dag klaar is. Eén script kan meerdere planningen hebben, elk met een eigen tijdschema, tijdzone en argumenten.
Op deze pagina gebruiken we de planning Indicadores diários van de app
Klantenbeheer, die het script atualizar_indicadores elke dag om 7.00 uur
laat draaien (tijdzone Europe/Lisbon).
Planningen aanmaken en openen
Klap in de boomstructuur van de zijbalk de knoop van het script uit. De regel Planningen toont hoeveel er zijn; daaronder verschijnt elke planning met haar naam, het samengevatte tijdschema en, wanneer ze uit staat, het label (uitgeschakeld).
- Aanmaken: klik op de + van de regel Planningen (Nieuwe planning). De editor opent in een nieuw tabblad.
- Bewerken: klik op de naam van de planning.
- In het menu ⋮ van elke planning vindt u Inschakelen/Uitschakelen en Verwijderen. Verwijderen stopt de planning voorgoed, maar de geschiedenis van de uitvoeringen van het script blijft bestaan.

De editor heeft het formulier links en het paneel Uitvoeringen rechts (alleen nadat er is opgeslagen — zie het einde van de pagina). Bovenaan zet de schakelaar Actief de planning aan en uit, en Opslaan slaat alles op.
De frequentie kiezen
Het veld Frequentie biedt drie kaarten — drie soorten planningen:
| Kaart | Dient voor |
|---|---|
| Herhalen | "Om de N minuten of uren, zonder ophouden." Peilingen, doorlopende synchronisaties. |
| Op vaste momenten | "Op een tijdstip van de dag, op de dagen die u kiest." De klassieker: dagelijks, wekelijks, maandelijks. |
| Bewakingsvenster | "Peilt om de N minuten tussen twee tijdstippen en stopt zodra het werk van de dag klaar is." |
Onder de kaarten verruilt de snelkoppeling De expressie met de hand
schrijven de instellingen voor een vrij veld Expressie met een
cron-expressie — voor wie er al een meebrengt. Het accepteert 5 of 6 velden
(met seconden), bijv.: 0 9 * * 1-5. Terug naar de instellingen maakt de
ruil ongedaan.
Herhalen
- Kies de kaart Herhalen.
- Kies bij Eenheid voor minuten of uren.
- Met minuten stelt u Om de hoeveel minuten? in (bijv. 15). Met uren
stelt u Op minuut in — de minuut van elk uur waarop hij afgaat (bijv.
0draait om 9.00, 10.00, 11.00 uur…).
Op vaste momenten
Kies de kaart Op vaste momenten.
Kies bij Herhaalt de variant:
Optie Velden die verschijnen Elke dag (op de gekozen dagen) Om (het tijdstip) + Dagen — zeven knoppen (Ma…Zo) met de snelkoppelingen Alle, Werkdagen en Weekend. Elke combinatie kan: maandag, woensdag en vrijdag, bijvoorbeeld. Eén keer per week Om + Dag van de week. Eén keer per maand Om + In de maand draait hij (zie hieronder). Voor de maandelijkse variant heeft In de maand draait hij drie vormen:
Optie Voorbeeld Op een vaste dag Dag 1, dag 15… Bij een Dag van de maand boven de 28 waarschuwt de editor: "In maanden zonder die dag draait hij niet. Gebruik voor «de laatste dag» de aparte optie." Op een positie (bijv. laatste vrijdag) Positie (1e, 2e, 3e, 4e, 5e of laatste) + Dag van de week — bijv. de laatste vrijdag van de maand. Op de laatste dag van de maand 31, 30, 28 of 29 — wat de maand ook heeft.
De tijdzone
Elke planning heeft een Tijdzone — de tijdstippen die u instelt, zijn
tijdstippen in die tijdzone, niet die van de server. De keuzelijst toont
alle IANA-tijdzones, met zoekfunctie (bijv. Amsterdam, Sao_Paulo). Een
planning om 9.00 uur in America/Sao_Paulo draait om 9.00 uur in São Paulo,
ook al staat de server in Europa — en de overgang naar zomertijd neemt het
platform voor zijn rekening.
Als een uitvoering wordt gemist
Soms gaat het geplande tijdstip voorbij zonder uitvoering: de server stond uit, herstartte halverwege, of de vorige uitvoering was nog bezig. De sectie Als een uitvoering wordt gemist bepaalt wat er met die gevallen gebeurt:
| Optie | Gevolg |
|---|---|
| Negeren | Haalt niets in. Het missen wordt wel vastgelegd (status Gemist in het paneel Uitvoeringen). |
| Alleen de meest recente | Haalt de laatste gemiste uitvoering in; de eerdere worden als gemist vastgelegd. |
| Alle | Haalt alle gemiste uitvoeringen in, in de volgorde waarin ze gepland stonden. |
De ingehaalde uitvoeringen verschijnen in de geschiedenis van het script met de oorsprong Inhaalslag.
Nota
Bij een bewakingsvenster is de eenheid van het inhalen de dag: inhalen voert het werk van de dag uit, ook nadat het venster is gesloten — het herhaalt de peilingen niet stuk voor stuk.
Bewakingsvenster
De derde kaart lost een patroon op dat de klassieke cron niet kan uitdrukken: "probeer het vanaf 18.00 uur om de 5 minuten; zodra het lukt, draai één keer en stop tot morgen". Typisch om te wachten tot een bestand binnenkomt, tot een dagafsluiting in een ander systeem klaar is, of tot een tabel gevuld is.

De velden:
| Veld | Wat dat bepaalt |
|---|---|
| Elke | Het peilinterval: 1, 2, 3, 5, 10, 15, 20 of 30 minuten. |
| Van / Tot | De tijdstippen waarop het venster opent en sluit, in de gekozen tijdzone. |
| Dagen | De dagen van de week waarop het venster bestaat (dezelfde zeven knoppen en snelkoppelingen). |
| Als een script een fout geeft, de rest van de dag stoppen | Aan: een fout sluit het venster tot de volgende dag in plaats van te blijven proberen. |
Zonder verdere instellingen voert het venster het script uit bij de eerste tik van elke dag en sluit het tot de volgende dag. De echte kracht zit in de validatie:
Het validatiescript
De sectie Validatiescript accepteert een kleine hoeveelheid Python-code die bij elke peiling beslist of het al mag draaien:
- Klik op Validatie toevoegen. Er opent een editor in een venster.
- Schrijf een functie
main(input)dieTrueteruggeeft (gereed — het hoofdscript draait één keer en het venster sluit tot morgen) ofFalse(nog niet — het wacht en probeert het volgende interval opnieuw). - Gebruik Validatie testen om haar meteen te draaien, met de argumenten van de planning: u ziet het oordeel (Mag draaien (loopt 1×) of Nog niet — wacht), de duur en de logs.
- Sluit het venster en klik op Opslaan in de editor van de planning.
# Geeft True terug zodra het bestand van de dag op de interne FTP is aangekomen.
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)
De validatie draait in dezelfde omgeving als het hoofdscript: ze krijgt
dezelfde input (argumenten en context), en heeft dezelfde bestanden,
dezelfde Python-omgeving en dezelfde SDK (db, http, log, …).
Dica
Code hebben is de validatie gebruiken — er is geen schakelaar. Klik op het × (De validatie verwijderen) om niet meer te valideren: de code wordt bij het opslaan verwijderd en het hoofdscript draait weer bij de eerste tik van het venster.
Argumenten van de planning
De sectie Argumenten legt naam/waarde-paren vast die bij elke uitvoering
van deze planning in input["args"] bij het script aankomen — net als bij de
handmatige uitvoering komen de waarden als tekst aan. Zo bedient hetzelfde
script twee verschillende planningen: een dagelijkse exportar met
{"ambito": "dia"} en een maandelijkse met {"ambito": "mes"}, bijvoorbeeld.
Opslaan, inschakelen, volgen
- Opslaan maakt de planning aan (of werkt haar bij). De knop wordt pas actief wanneer de naam is ingevuld en het tijdschema geldig is.
- De schakelaar Actief bovenaan zet haar aan en uit zonder iets te verwijderen — in de boom toont een uitgeschakelde planning (uitgeschakeld).
- Een actieve planning van een script in Concept draait niet: de gevallen blijven Overgeslagen, met de notitie "Het script staat in concept".
Het paneel Uitvoeringen
Nadat er is opgeslagen, toont de rechterkant van de editor het paneel Uitvoeringen — de planning van buitenaf gezien, live bijgewerkt:
- De eerste regel zegt of de planningsmotor van de installatie leeft ("Planner actief · laatste controle N s geleden"). Draait hij niet, dan verschijnt er een duidelijke waarschuwing — de geplande tijdstippen bestaan, maar niemand gaat zich eraan houden totdat de planner start. Praat in dat geval met wie de installatie beheert.
- Daaronder de lijst met gevallen — elk gepland tijdstip en de status ervan:
| Status | Betekent |
|---|---|
| Nog te doen | Toekomstig tijdstip, nog niet aan de beurt. |
| Wordt uitgevoerd | De uitvoering is nu bezig. |
| Gedaan | Hij heeft gedraaid. |
| Gemist | Hij heeft niet gedraaid en het beleid is Negeren (of hij was al niet meer in te halen). De reden staat op de regel. |
| Overgeslagen | Hij heeft niet gedraaid — bijv. script in concept, of overlap met de vorige uitvoering. |
Bij een planning met validatie opent klikken op een geval de Pogingen van de validatie: elke peiling met het oordeel (gereed, nog niet of fout) en het bericht. Reeksen van "nog niet" verschijnen ingeklapt — "12 pogingen zonder nieuws" — zodat de drie regels die ertoe doen niet verloren gaan in de massa.

Veelgestelde vragen
Ik heb dag 31 ingesteld en er zijn maanden waarin hij niet draait. Dat is het gedrag van Op een vaste dag: in maanden zonder die dag draait hij niet — de editor waarschuwt wanneer u 29, 30 of 31 kiest. Gebruik voor "het einde van de maand" Op de laatste dag van de maand.
De uitvoering van 9.00 uur verscheen als Overgeslagen (overlap). De vorige uitvoering was nog bezig toen het nieuwe tijdstip aanbrak. Het platform voert dezelfde planning nooit twee keer tegelijk uit. Gebeurt dat vaak, verruim dan het interval of verminder het werk per uitvoering.
De validatie gaf True terug, maar het hoofdscript draaide maar één keer — de voorwaarde is nog steeds waar.
Dat is met opzet: wanneer de validatie True teruggeeft, draait het
hoofdscript één keer en sluit het venster tot de volgende dag. Zonder dat
zou een voorwaarde die waar blijft, het script tot het einde van het venster
in een lus laten draaien.
De klok is verzet (zomer-/wintertijd) — moet ik de planningen aanpassen? Nee. De tijdstippen worden geïnterpreteerd in de Tijdzone van de planning; de tijdswisseling wordt door het platform afgehandeld.