Cron-syntax is vijf velden van getallen en symbolen die op de een of andere manier "elke werkdag om 9 uur behalve feestdagen" of "elke 15 minuten tussen 8 en 6" moet uitdrukken. De velden zijn minuut, uur, dag van de maand, maand en dag van de week, in een volgorde die niemand de eerste keer goed onthoudt, en sterretjes, komma's, streepjes en schuine strepen betekenen allemaal iets anders afhankelijk van hun positie.
0 9 * * 1-5 ziet er redelijk uit, maar is dat 9 uur 's ochtends of 's avonds, en betekent 1-5 maandag tot en met vrijdag of iets compleet anders, afhankelijk van of de cron-implementatie zondag als 0 of als 7 telt? Dit verkeerd krijgen in een deploymentpipeline, een back-uptaak, of een geplande rapportage betekent ofwel stille fouten ofwel een taak die op een ongelegen tijdstip afgaat — soms wekenlang zonder dat iemand het merkt.
Elke cron-implementatie heeft zijn eigen eigenaardigheden
Standaard Unix-cron, Kubernetes CronJobs, AWS EventBridge en diverse CI-platforms gebruiken allemaal ongeveer dezelfde syntax van vijf velden, maar verschillen op kleine punten — of seconden ondersteund worden, hoe de nummering van de dag van de week werkt, of bepaalde afkortingen zoals @daily geldig zijn. Een schema schrijven dat bij de eerste deploy correct werkt, betekent precies begrijpen welke cron-variant je target.
Vertaal expressies naar gewone taal
Bellows bevat een cron-expressiehelper die een schema-string neemt en in gewone taal uitlegt wat hij daadwerkelijk betekent, zodat je je bedoeling kunt verifiëren voordat je een geplande taak ergens uitrolt.
Verifiëren voordat je deployt
Een geplande taak die op het verkeerde moment afgaat, is vaak een stille fout — er crasht niets, hij draait gewoon wanneer je dat niet wilde, soms overlappend met een onderhoudsvenster of een database beukend tijdens piekverkeer. De betekenis in gewone taal van een cron-string controleren voordat je een deploymentconfiguratie mergt, vangt dit op voordat het een 2 uur 's nachts-pager wordt.
Iemand anders' schema lezen
Een codebase erven met een dozijn bestaande cron-taken betekent uitzoeken wat elk ervan doet voordat je er veilig een kunt wijzigen. Elke expressie snel vertalen is sneller dan vijf cryptische velden één voor één mentaal parsen.