Dans crontab, le champ Day of the Week s’exécute à partir de 0 - 6
ou 1 -7
?
Je vois des informations contradictoires à ce sujet. wikipedia déclare que 0-6
et d’autres sites que j’ai vus sont 1-7
.
En outre, quelle serait l'implication ou bien en utilisant 0
ou 7
de manière incorrecte? le cron continuerait-il à fonctionner?
0
et 7
signifient tous les deux dimanche. Vous pouvez utiliser celui de votre choix. L'écriture de 0-6 ou 1-7 produit le même résultat.
En outre, comme suggéré par @Henrik, il est possible de remplacer des nombres par des noms abrégés, tels que MON
, THU
, etc.:
0 - Sun Sunday
1 - Mon Monday
2 - Tue Tuesday
3 - Wed Wednesday
4 - Thu Thursday
5 - Fri Friday
6 - Sat Saturday
7 - Sun Sunday
Graphiquement:
┌────────── minute (0 - 59)
│ ┌──────── hour (0 - 23)
│ │ ┌────── day of month (1 - 31)
│ │ │ ┌──── month (1 - 12)
│ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
│ │ │ │ │ 1 - 7 => Monday - Sunday)
↓ ↓ ↓ ↓ ↓
* * * * * command to be executed
Enfin, si vous souhaitez spécifier jour par jour, vous pouvez séparer les jours par des virgules, par exemple, Sun,MON,THU
n'exécutera la commande que les dimanches, les lundis des jeudis.
Vous pouvez lire plus de détails dans article de Wikipedia sur Cron .
:-) Sunday | 0 -> Sun
|
Monday | 1 -> Mon
Tuesday | 2 -> Tue
Wednesday | 3 -> Wed
Thursday | 4 -> Thu
Friday | 5 -> Fri
Saturday | 6 -> Sat
|
:-) Sunday | 7 -> Sun
Comme vous pouvez le voir ci-dessus, et comme indiqué précédemment, les numéros 0
et 7
sont tous deux attribués à dimanche. Il existe également les jours abrégés de la semaine en anglais répertoriés, qui peuvent également être utilisés dans la crontab.
Exemples d'utilisation de nombres ou d'abréviations
15 09 * * 5,6,0 command
15 09 * * 5,6,7 command
15 09 * * 5-7 command
15 09 * * Fri,Sat,Sun command
Les quatre exemples se ressemblent tous et exécutent une commande tous les vendredis, samedis et dimanches à 9h15.
en détail
Avoir deux chiffres 0
et 7
pour dimanche peut être utile pour écrire des plages de jours de la semaine commençant par 0
ou se terminant par 7
. Vous pouvez donc écrire des plages commençant par dimanche ou se terminant par celle-ci, comme par exemple 0-2
ou 5-7
(les plages doivent commencer par le nombre le plus bas et se terminer par le plus élevé). Les abréviations ne peuvent pas être utilisées pour définir une plage de jours.
Vous pouvez également utiliser des noms de jour tels que Mon
pour lundi, Tue
pour mardi, etc. C'est plus convivial.
Utilisation de Spring:
Ce travail commence à 10 h 00 le lundi matin :
@Scheduled(cron = "0 0 10 * * MON")
Ce travail commence à 10 heures le matin du 1er de chaque mois
@Scheduled(cron = "0 0 10 1 1/1 ?")