La sintassi cron è composta da cinque campi di numeri e simboli che in qualche modo devono esprimere "ogni giorno feriale alle 9 del mattino tranne i festivi" oppure "ogni 15 minuti tra le 8 e le 18." I campi sono minuto, ora, giorno del mese, mese e giorno della settimana, in un ordine che nessuno ricorda correttamente al primo tentativo, e asterischi, virgole, trattini e barre significano tutti cose diverse a seconda della posizione.
0 9 * * 1-5 sembra ragionevole, ma è alle 9 del mattino o alle 9 di sera, e 1-5 significa da lunedì a venerdì o qualcos'altro del tutto a seconda che l'implementazione cron conti la domenica come 0 o come 7? Sbagliare questo in una pipeline di deploy, un job di backup o un report pianificato significa fallimenti silenziosi oppure un job che scatta a un'ora scomoda — a volte per settimane prima che qualcuno se ne accorga.
Ogni Implementazione Cron Ha le Sue Stranezze
Il cron Unix standard, i CronJob di Kubernetes, AWS EventBridge e varie piattaforme CI usano tutte approssimativamente la stessa sintassi a cinque campi ma differiscono in piccoli dettagli — se i secondi sono supportati, come funziona la numerazione dei giorni della settimana, se certe stringhe abbreviate come @daily sono valide. Scrivere una pianificazione che funzioni correttamente al primo deploy significa capire esattamente quale variante di cron stai targettando.
Traduci le Espressioni in Linguaggio Comune
Bellows include un assistente per espressioni cron che prende una stringa di pianificazione e spiega cosa significa effettivamente in linguaggio semplice, così puoi verificare le tue intenzioni prima di distribuire un job pianificato da qualche parte.
Verificare Prima di Distribuire
Un job pianificato che scatta all'ora sbagliata è spesso un fallimento silenzioso — niente va in crash, gira semplicemente quando non intendevi, a volte sovrapponendosi a una finestra di manutenzione o martellando un database durante il picco di traffico. Controllare il significato in linguaggio comune di una stringa cron prima di unire una configurazione di deploy cattura questo prima che diventi una chiamata alle 2 di notte.
Leggere la Pianificazione di Qualcun Altro
Ereditare una codebase con una dozzina di job cron esistenti significa capire cosa fa ognuno prima di poterlo modificare in sicurezza. Tradurre rapidamente ogni espressione è più veloce che analizzare mentalmente cinque campi criptici un job alla volta.