Format et fuseau horaire du job Cron

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. Même si nous ne recommandons plus son utilisation, La syntaxe Cron App Engine est toujours pris en charge pour 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 date et heure ont le format et les valeurs possibles ci-dessous. Ils doivent respecter cette commande:

|------------------------------- 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 la durée d'exécution de la tâche au-delà de la première heure, 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 d'exécution de votre tâche au-delà de minuit. (arrondi à l'heure la plus proche, car les minutes restantes sont indiquées dans le champ minute). Il est 0 à minuit et 12 à midi. Par exemple, si l'heure est définie sur 0, la tâche s'exécute à minuit, car cette correspond à 0 heure après minuit).

  • Jour du mois:indique le jour du mois. Par exemple, 1 le premier jour du mois. Cloud Scheduler ne Prise en charge de L pour désigner 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 est 2, et ainsi de suite. 0 ou 7 peut indiquer dimanche. Indiquez le jour du la semaine, soit par un numéro, soit par les trois premières lettres du nom de la semaine. en majuscules (par exemple, SUN pour 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 sur 1 et le jour de la semaine est défini sur SAT, 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 le mois 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.

Correspondance avec toutes les valeurs

Pour faire correspondre toutes les valeurs d'un champ, utilisez l'astérisque: *. Lorsqu'un champ est défini sur l'astérisque, le champ correspond à toutes les valeurs valides pour ce champ chaque fois que autres conditions de 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 toutes les minutes à minuit le 1er janvier. et les lundis.
  • * * * * *: la tâche s'exécute toutes les minutes (toutes les heures, tous les jours du chaque jour, chaque mois, chaque jour de la semaine, car chacun de ces champs ne fait l'objet d'aucune restriction).

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).

Correspondance avec une plage

Pour faire correspondre une plage de valeurs, spécifiez les valeurs de début et de fin en les séparant par un Trait d'union (-). N'incluez pas d'espaces dans la plage. Les plages sont inclusives. 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 plages. Spécifiez les valeurs en les séparant par une virgule (,). N'incluez pas d'espaces dans les 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 les valeurs d'une plage en spécifiant la vitesse à laquelle vous souhaitez passer dans la plage. On parle parfois d'utilisation d'une fonction de pas (ou l'attribut value de l'étape ou l'expression de tarif). 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 pour la . 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 d'étape valide pour n'importe quel champ. Pour le champ des minutes, correspond à 0, 2, 4, ... , 58. Pour l'heure, il correspond à 0, 2, 4, ... , 22. Pour le jour du mois correspond à 1, 3, 5, ... , 31 (pour un mois contenant 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: il s'agit d'une fonction de pas valide pour les champs de minutes et d'heures. Il correspond à 0, 2, 4, ... , 12.

Exemples de planification utilisant des fonctions graduelles:

  • */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, toutes les heures. 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 du job Cron Explication
Toutes les minutes * * * * * S'exécute à la minute. Par exemple, 9h00, 9h01, 02h02 et ainsi de suite.
Toutes les heures 0 * * * * S'exécute toutes les heures. Par exemple, 9:00 AM, 10:00 AM, 11:00 AM, etc. activé.
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:
  • 0 0 * * 1-5
  • 0 0 * * MON-FRI
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:
  • 0 0 * * 0
  • 0 0 * * 7
  • 0 0 * * SUN
S'exécute 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 éléments suivants sont équivalents:
  • 0 0 1 1,4,7,10 *
  • 0 0 1 JAN,APR,JUL,OCT *
Exécution à minuit (00:00 au format 24 heures) le premier jour du trimestre, pour un calendrier trimestriel standard: 1er janvier, 1er avril, 1er juillet le 1er et le 1er octobre.
Tous les ans Les éléments suivants sont équivalents:
  • 0 0 1 1 *
  • 0 0 1 JAN *
Exécution à 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 pour évaluer la planification dans les Console Google Cloud (sur la page Créer une tâche, sélectionnez un Fuseau horaire dans la liste) ou via la gcloud signalez --time-zone lorsque vous créer le job.

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, le passage à l'heure d'été peut entraîner l'exécution ou l'absence d'exécution de tâches de manière inattendue. En effet, Cloud Scheduler s'exécute sur l'horloge murale. en temps réel. 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 choisir un fuseau horaire qui ne respecte pas l'heure d'été. Plus précisément, Pour éviter le problème, nous vous recommandons d'utiliser le fuseau horaire UTC pour Cloud Scheduler. complètement.