Les jobs Cron sont planifiés à intervalles réguliers, spécifiés à l'aide d'un format sur unix-cron. Vous pouvez définir une planification pour que votre job s'exécute plusieurs fois par jour des jours et des mois spécifiques. (Bien que nous ne recommandions plus son utilisation, l'ancienne syntaxe Cron d'App Engine est toujours compatible avec les jobs existants.)
Format du job Cron
Vous pouvez utiliser la console Google Cloud, Google Cloud CLI ou l'API REST Cloud Scheduler pour définir votre programmation.
Une planification est définie à l'aide du format de chaîne unix-cron (* * * * *
), qui est une
Ensemble de cinq champs sur une ligne, indiquant le moment où la tâche doit être exécutée.
Les champs de temps ont le format et les valeurs possibles suivants, et doivent suivre cet ordre :
|------------------------------- Minute (0-59) | |------------------------- Hour (0-23) | | |------------------- Day of the month (1-31) | | | |------------- Month (1-12; or JAN to DEC) | | | | |------- Day of the week (0-6; or SUN to SAT; or 7 for Sunday) | | | | | | | | | | * * * * *
Champ | Format des valeurs valides |
---|---|
Minute | 0-59 |
Heure | 0-23 |
jour du mois | 1-31 |
Mois | 1-12 (ou JAN à DÉC) |
Jour de la semaine | 0-6 (ou SUN à SAT ; ou 7 pour dimanche) |
Minute : indique le temps écoulé après la fin de l'heure à laquelle votre tâche s'exécute, en minutes. Par exemple, si la minute est définie sur
0
, la tâche s'exécute au en début d'heure (car c'est à 0 minute après l'heure). Donc, si l'heure à 8h00, le job s'exécute à 8h00.Heure : indique le nombre d'heures écoulées après minuit pendant lesquelles votre tâche s'exécute (arrondi à l'heure la plus proche, car les minutes restantes sont indiquées dans le champ
minute
). Il est0
à minuit et12
à midi. Par exemple, si l'heure est définie sur0
, la tâche s'exécute à minuit (car il s'agit de 0 heure après minuit).Jour du mois:indique le jour du mois. Par exemple :
1
le premier jour du mois. Cloud Scheduler n'accepte pasL
pour indiquer le dernier jour du mois.Mois : indique le mois. Spécifiez le numéro du mois ou les trois premiers lettres du nom du mois en majuscules. Par exemple,
1
pour janvier, ou équivaut àJAN
.Jour de la semaine : indique le jour de la semaine. Lundi est le
1
, mardi est2
, et ainsi de suite.0
ou7
peuvent indiquer le dimanche. Spécifiez le jour de la semaine par numéro ou par les trois premières lettres du nom du jour de la semaine en majuscules (par exemple,SUN
pour le dimanche).- Ce champ est évalué comme une
OR
inclusive avec l'day of the month
, à moins que l'un de ces champs ne soit marqué comme non restreint (*
). Par exemple, si le jour du mois est défini sur1
et le jour de la semaine est défini surSAT
, la tâche est exécutée le premier jour du mois et tous les samedis du mois, même si le premier jour du ce n'est pas un samedi. Si le jour de la semaine n'est pas restreint par*
), la tâche n'est exécutée que le premier jour du mois.
- Ce champ est évalué comme une
Correspondance avec toutes les valeurs
Pour représenter toutes les valeurs d'un champ, utilisez l'astérisque : *
. Lorsqu'un champ est défini sur l'astérisque, il correspond à toutes les valeurs valides pour ce champ chaque fois que les autres conditions du champ sont remplies. Définir un champ
avec l'astérisque est
On parle parfois de laisser le champ unrestricted (il n'est pas restreint), car il n'est pas
limitée à une valeur spécifique.
Voici deux exemples dans lesquels le champ des minutes n'est pas restreint:
* 0 1 1 1
: la tâche s'exécute chaque minute de minuit le 1er janvier et les lundis.* * * * *
: la tâche s'exécute toutes les minutes (de chaque heure, de chaque jour du mois, de chaque mois, de chaque jour de la semaine, car chacun de ces champs n'est pas limité non plus).
L'astérisque équivaut au cas particulier d'une plage, où le
La plage commence à la première valeur valide du champ et se termine à la dernière valeur valide
du champ (par exemple, 0-59
pour le champ de minutes).
Correspondre à une plage
Pour faire correspondre une plage de valeurs, spécifiez vos valeurs de début et de fin, séparées par un trait d'union (-
). N'incluez pas d'espaces dans la plage. Les plages sont incluses. La
le premier nombre doit être inférieur au second. Si vous utilisez les abréviations
du mois ou du jour de la semaine (par exemple, JAN
au lieu de 1
pour
mois de l'année), la première valeur doit apparaître plus tôt dans le mois ou la semaine que
la deuxième valeur.
Les exemples équivalents suivants s'exécutent à minuit les lundis, mardis, Mercredi, jeudi et vendredi (pour tous les mois):
0 0 * * 1-5
0 0 * * MON-FRI
Correspondance avec une liste
Les listes peuvent contenir n'importe quelle valeur valide pour le champ, y compris des intervalles.
Spécifiez vos valeurs, séparées par une virgule (,
). N'incluez pas d'espaces dans la liste.
Exemples :
0 0,12 * * *
: la tâche s'exécute à minuit et midi.0-5,30-35 * * * *
: la tâche s'exécute chacune des cinq premières minutes une demi-heure (en haut et une demi-heure après l'heure).
Ignorer des valeurs dans une plage
Vous pouvez ignorer des valeurs dans une plage en spécifiant un taux d'incrémentation de la plage. On parle parfois d'utilisation d'une fonction par pas (ou valeur par pas ou expression de taux). Pour ce faire, spécifiez la plage, suivie du
(/
) et la vitesse à laquelle vous souhaitez passer dans la plage.
Vous pouvez utiliser l'astérisque (*
) pour indiquer la plage de toutes les valeurs du champ. Lorsque vous utilisez l'astérisque, la première valeur de la plage est: 0 pour les minutes,
les champs d’heure et de jour de la semaine (dimanche), et 1 pour les champs de jour du mois et de mois.
La valeur de l'incrément ne peut pas être supérieure à la plus grande valeur possible pour le champ.
L'étape par défaut étant 1, la fonction de pas /1
équivaut à n'utiliser aucune fonction de pas.
Exemples de plages qui utilisent des fonctions d'étape:
*/2
: fonction de pas valide pour n'importe quel champ. Pour le champ des minutes, correspond à 0, 2, 4, ... , 58. Pour l'heure, il correspond à 0, 2, 4, etc., jusqu'à 22. Pour le jour du mois, il correspond à 1, 3, 5, etc., 31 (pour un mois de 31 jours). Pour le mois, il correspond à 1, 3, 5, ... , 11. Pour le jour de la semaine, il correspond à 0, 2, 4, 6.0-12/2
: fonction de pas valide pour les champs de minutes et d'heures. Il correspond à 0, 2, 4, ... , 12.
Exemples de planifications utilisant des fonctions en escalier :
*/2 * * * *
: la tâche s'exécute toutes les deux minutes.0 0-12/2 * * *
: la tâche s'exécute toutes les deux heures, à l'heure. La première exécution est à minuit. La dernière exécution a lieu à midi.
Exemples de calendrier
Le tableau suivant présente quelques exemples de planification de job Cron et leur description:
Planification | Format de la tâche Cron | Explication |
---|---|---|
Toutes les minutes | * * * * * |
S'exécute à la minute près. Par exemple, 9h00, 9h01, 02h02 et ainsi de suite. |
Toutes les heures | 0 * * * * |
S'exécute toutes les heures. Par exemple, 9h00, 10h00, 11h00, etc. |
Tous les jours | 0 0 * * * |
S'exécute à minuit (00:00 au format 24 heures) tous les jours. |
Tous les jours de la semaine (du lundi au vendredi) |
Les éléments suivants sont équivalents:
|
S'exécute à minuit (00:00 au format 24 heures) les lundis, mardis, mercredi, jeudi et vendredi. |
Toutes les semaines | Les éléments suivants sont équivalents:
|
Exécution le dimanche à minuit (00:00 au format 24 heures). |
Tous les mois | 0 0 1 * * |
S'exécute à minuit (00:00 au format 24 heures) le premier jour du mois. |
Tous les trimestres | Les expressions suivantes sont équivalentes :
|
S'exécute à minuit (00:00 au format 24 heures) le premier jour du trimestre, pour une planification trimestrielle standard : 1er janvier, 1er avril, 1er juillet et 1er octobre. |
Tous les ans | Les éléments suivants sont équivalents:
|
S'exécute à minuit (00:00 au format 24 heures) le premier jour du premier mois de l'année (1er janvier). |
Fuseau horaire
Vous pouvez sélectionner le fuseau horaire à utiliser pour évaluer la planification dans la console Google Cloud (sur la page Create a job (Créer une tâche), sélectionnez un Fuseau horaire dans la liste) ou via l'indicateur gcloud
--time-zone
lorsque vous créez la tâche.
La valeur de ce champ doit correspondre à l'abréviation de fuseau horaire utilisée dans le champ
base de données tz.
Le fuseau horaire par défaut est UTC
.
Pour certains fuseaux horaires, l'heure d'été peut entraîner l'exécution ou la non-exécution inattendue de tâches. En effet, Cloud Scheduler s'exécute à l'heure de la montre. Dans les cas où une heure peut apparaître deux fois (par exemple, lorsque les horloges tournent vers l'arrière) et que votre mission est planifiée à cette heure, celle-ci peut d'observer les anomalies d'exécution.
Si votre travail nécessite une cadence très spécifique, vous pouvez envisager de choisir un fuseau horaire qui n'observe pas l'heure d'été. Plus précisément, Pour éviter ce problème, nous vous recommandons d'utiliser le fuseau horaire UTC pour Cloud Scheduler. complètement.