Blog
Français

Traducteur d’expressions cron — Signification et prochaines exécutions

Explication d’expressions cron à 5 ou 6 champs, 5 prochaines exécutions et fuseaux horaires

Traitement dans le navigateur · aucun envoi de fichier

Charger un exemple

Forme à 5 champs : minute heure jour mois jour-de-semaine · Forme à 6 champs : seconde minute heure jour mois jour-de-semaine

Toutes les 5 minutes

En clair

Toutes les 5 minutes

5 prochaines exécutions

    Présentation

    Une expression cron courte comme */5 * * * * est obscure, même pour la personne qui l’a écrite il y a quelques mois. Saisissez-la ici : elle est traduite en phrase, et les cinq prochaines exécutions réelles sont calculées pour le fuseau horaire de votre choix. La phrase est produite par la bibliothèque open source cronstrue.

    Mode d’emploi

    1. Saisissez une expression cron ou cliquez sur un bouton d’exemple. La forme à 5 champs comme celle à 6 champs avec les secondes sont acceptées.
    2. Lisez la signification sous « En clair ».
    3. Choisissez un fuseau horaire ; les 5 prochaines exécutions sont recalculées pour lui. Le fuseau du navigateur est utilisé par défaut.
    4. Si vous utilisez un alias comme @daily, l’expression standard qu’il représente s’affiche à côté.

    Fonctionnement

    • Ordre des champs : cinq champs pour minute (0-59), heure (0-23), jour (1-31), mois (1-12) et jour de la semaine (0-7) ; six champs ajoutent les secondes (0-59) en tête. Les jours 0 et 7 désignent tous deux dimanche et 1 lundi (cron Unix et Spring), ce qui diffère de Quartz, où 1 est dimanche.
    • Un champ peut contenir *, un nombre, une plage a-b, une liste a,b et des pas */n, a-b/n ou a/n. Le mois et le jour de la semaine acceptent aussi les abréviations anglaises comme JAN et MON. Dans le jour du mois et le jour de la semaine, ? est traité comme *.
    • Alias : @yearly (0 0 1 1 *), @monthly (0 0 1 * *), @weekly (0 0 * * 0), @daily (0 0 * * *) et @hourly (0 * * * *).
    • Quand ni le jour du mois ni le jour de la semaine ne valent *, l’exécution a lieu si l’un ou l’autre correspond.
    • Les prochaines exécutions sont trouvées en parcourant l’horloge du fuseau sélectionné champ par champ, sur 8 ans au maximum. Une date qui n’arrive jamais, comme le 30 février, affiche un message à la place.
    • Une expression invalide indique quel champ et quelle valeur posent problème.

    Exemples

    Expression Signification
    */5 * * * * Toutes les 5 minutes
    0 9 * * 1-5 À 09:00 du lundi au vendredi
    0 0 9 * * 1-5 Six champs : à 09:00:00 du lundi au vendredi
    30 2 1 * * À 02:30 le 1er de chaque mois

    À savoir

    • Si le serveur tourne dans un autre fuseau que votre navigateur, les heures d’exécution réelles diffèrent aussi ; choisissez donc le fuseau du serveur pour vérifier.
    • Pour des expressions très fréquentes, comme toutes les minutes ou toutes les secondes, les cinq prochaines exécutions se suivent simplement.

    Questions fréquentes

    Quelle différence entre 5 et 6 champs ?

    Cinq champs correspondent à minute heure jour mois jour-de-semaine ; six champs ajoutent les secondes en tête, soit seconde minute heure jour mois jour-de-semaine. La crontab Linux utilise cinq champs, Spring @Scheduled en utilise six. L’outil les distingue par le nombre de champs. Les jours de la semaine sont numérotés comme dans cron Unix et Spring, 0 et 7 pour dimanche, 1 pour lundi. Quartz utilise 1 = dimanche à 7 = samedi ; une expression à 6 champs avec ? et un jour de semaine numérique affiche donc un avertissement.

    L’outil sait-il lire les expressions Quartz ?

    Une expression à 6 champs dont les jours sont écrits en toutes lettres, comme MON ou FRI, est lue telle quelle. Les jours numériques sont numérotés différemment (Quartz 1 = dimanche, cet outil 0 et 7 = dimanche, 1 = lundi) et seraient donc décalés d’un jour ; utilisez les noms ou retranchez 1. Si l’expression est destinée à Spring, qui accepte aussi ?, l’avertissement ne s’applique pas. La forme à 7 champs avec l’année à la fin et les notations L, W et # ne sont pas prises en charge.

    Que se passe-t-il si le jour du mois et le jour de la semaine sont tous deux renseignés ?

    Les règles classiques de cron s’appliquent, et l’exécution a lieu si l’un ou l’autre correspond. Par exemple, 0 0 13 * 5 signifie minuit le 13 de chaque mois ou n’importe quel vendredi. Si l’un des deux vaut *, seul l’autre sert de condition.

    Comment les changements d’heure sont-ils gérés ?

    Les heures sont calculées sur l’horloge locale du fuseau sélectionné. Une heure sautée lors du passage à l’heure d’été n’est pas exécutée ce jour-là, et une heure qui se produit deux fois n’est exécutée qu’une fois, à sa première occurrence. Les vrais planificateurs peuvent se comporter autrement selon leur implémentation.

    Les extensions comme L, W et # sont-elles prises en charge ?

    Non. Sont compris les nombres, les plages (-), les listes (,), les pas (/), * et ?, les abréviations de mois et de jours (JAN, MON) et les alias @hourly, @daily, @weekly, @monthly et @yearly. Tout le reste est signalé comme une erreur.

    Il vous manque un outil ?