I cron job vengono pianificati a intervalli ricorrenti, specificati utilizzando un formato basato su unix-cron. Puoi definire una pianificazione in modo che il job venga eseguito più volte al giorno oppure in giorni e mesi specifici. Anche se non ne consigliamo più l'utilizzo, la sintassi cron di App Engine legacy è ancora supportata per i job esistenti.
Formato cron job
Una pianificazione viene definita utilizzando il formato stringa unix-cron (* * * * *
), che è un insieme di cinque campi di una riga che indicano quando il job deve essere eseguito.
Per impostare la pianificazione puoi utilizzare la console Google Cloud, Google Cloud CLI o l'API REST di Cloud Scheduler.
I campi dell'ora hanno il seguente formato e valori possibili e devono seguire questo ordine:
Campo | Formato di valori validi |
---|---|
Minuto | 0-59 |
Ora | 0-23 |
Giorno del mese | 1-31 |
Mese | 1-12 (o da GEN a DEC) |
Giorno della settimana | 0-6 (o dom a sab; oppure 7 per domenica) |
Caratteri speciali
- Un campo può contenere un asterisco (
*
), che sta sempre per "primo-ultimo". - Gli intervalli sono due numeri separati da un trattino (
-
) e l'intervallo specificato è inclusivo. - Se segui un intervallo con
/NUMBER
, verranno ignorati i valori del numero tramite l'intervallo. Ad esempio,0-23/2
e*/2
possono essere utilizzati nel campoHour
per specificare l'esecuzione ogni due ore. - Un elenco è un insieme di numeri (o intervalli) separati da virgole (
,
). Ad esempio,1,2,5,6
nel campoDay of the month
specifica un'esecuzione il primo, il secondo, il quinto e il sesto giorno del mese.
Fuso orario
Puoi selezionare il fuso orario per valutare la pianificazione nella console di Google Cloud (nella pagina Crea un job, seleziona un Fuso orario dall'elenco) o tramite il flag gcloud
--time-zone
quando crei il job. Il fuso orario predefinito è Etc/UTC
.
Per alcuni fusi orari, l'ora legale può causare l'esecuzione o la mancata esecuzione dei job. Questo perché Cloud Scheduler viene eseguito all'ora dell'orologio da parete. Nei casi in cui può verificarsi un orario due volte (ad esempio nel caso in cui gli orologi vanno indietro) e il job è pianificato in questo momento, il job programmato potrebbe osservare anomalie di esecuzione.
Se il tuo job richiede una cadenza molto specifica, ti consigliamo di scegliere un fuso orario che non osserva l'ora legale. In particolare, UTC è consigliato a Cloud Scheduler per evitare completamente il problema.
Programmazioni di esempio
La tabella seguente mostra alcuni esempi di pianificazioni di cron job e la relativa descrizione:
Pianificazione di esempio | Formato cron job |
---|---|
Ogni minuto | * * * * * |
Ogni sabato alle 23:45 (23:45) | 45 23 * * 6 |
Ogni lunedì alle 09:00 (9:00) | 0 9 * * 1 |
Ogni domenica alle 04:05 (4:05) | 5 4 * * SUN |
Tutti i giorni feriali (lun-ven) alle 22:00 (22:00) | 0 22 * * 1-5 |