DevToolPal
IT

Espressione cron

Ogni 30 secondi

Cron non scende sotto il minuto, quindi il trucco comune sono due righe di crontab: una parte all’inizio di ogni minuto, l’altra attende 30 secondi prima.

* * * * * Apri nel parser di espressioni cron

Il cron standard non ha il campo dei secondi. Le due righe danno due esecuzioni al minuto; Quartz e Spring supportano i secondi direttamente. Kubernetes e GitHub Actions non possono eseguire job così spesso.

Campo per campo

Campo Valore Corrisponde a
Minuto * Qualsiasi valore
Ora * Qualsiasi valore
Giorno del mese * Qualsiasi valore
Mese * Qualsiasi valore
Giorno della settimana * Qualsiasi valore

Prossime esecuzioni

Esempio: le prime 6 esecuzioni dopo il 1 gennaio 2026 (UTC).

  1. gio 1 gen 2026, 00:01:00
  2. gio 1 gen 2026, 00:01:30
  3. gio 1 gen 2026, 00:02:00
  4. gio 1 gen 2026, 00:02:30
  5. gio 1 gen 2026, 00:03:00
  6. gio 1 gen 2026, 00:03:30

Versioni pronte all’uso

crontab
* * * * * /path/to/command
* * * * * sleep 30; /path/to/command

Aggiungi la riga con crontab -e. Viene eseguita nel fuso orario del server, a meno che non sia impostato CRON_TZ o TZ.

Kubernetes CronJob: Questo scheduler non può eseguire questa pianificazione.

GitHub Actions: Questo scheduler non può eseguire questa pianificazione.

GitHub Actions usa sempre UTC, accetta intervalli di almeno 5 minuti e sotto carico può avviare in ritardo le esecuzioni pianificate.

Quartz
0/30 * * * * ?

Quartz mette i secondi per primi e richiede ? nel giorno del mese o nel giorno della settimana. I giorni vanno da 1 a 7 partendo dalla domenica, quindi i nomi sono più sicuri.

Spring
@Scheduled(cron = "*/30 * * * * *")

Spring @Scheduled(cron = …) usa sei campi: i secondi e poi i soliti cinque.

Domande frequenti

› Esiste un’espressione cron per ogni 30 secondi?

Non nel cron standard a cinque campi. Usa due righe di crontab (una con sleep 30), un timer systemd con OnUnitActiveSec=30s oppure Quartz 0/30 * * * * ?.

› In quale fuso orario viene eseguita * * * * *?

Cron usa il fuso orario della macchina o del servizio che lo esegue. Su Linux è il fuso di sistema, salvo che sia impostato CRON_TZ o TZ; i CronJob di Kubernetes accettano spec.timeZone; GitHub Actions usa sempre UTC.

› Come verifico la pianificazione prima del deploy?

Apri * * * * * nel parser di espressioni cron di questo sito. Spiega ogni campo ed elenca le prossime esecuzioni in ora locale o UTC, direttamente nel browser.