J'essaie de faire exécuter mon code selon un calendrier fixe, basé sur une expression cron Spring. Je souhaite que le code soit exécuté tous les jours à 1h01. J'ai essayé l'expression suivante, mais cela ne s'est pas déclenché pour moi. Quel est le problème avec la syntaxe ici?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
Réponses:
Essayez avec:
Vous trouverez ci-dessous les exemples de modèles du forum du printemps:
L'expression Cron est représentée par six champs:
(*)
signifie correspondre à tout*/X
signifie "chaque X"?
("pas de valeur spécifique") - utile lorsque vous devez spécifier quelque chose dans l'un des deux champs dans lesquels le caractère est autorisé, mais pas dans l'autre. Par exemple, si je veux que mon déclencheur se déclenche un jour particulier du mois (disons le 10), mais peu m'importe quel jour de la semaine qui se trouve, je mettrais "10" dans la journée - champ du mois et "?" dans le champ jour de la semaine.PS: Pour le faire fonctionner, n'oubliez pas de l'activer dans votre contexte d'application: https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling- support d'annotation
la source
Pour mon ordonnanceur, je l'utilise pour tirer à 6 h tous les jours et ma notation cron est:
Si vous voulez 1: 01: am, réglez-le sur
Code complet pour le planificateur
** TRÈS IMPORTANT
Pour être sûr de l'exactitude du temps de tir de votre planificateur, vous devez définir la valeur de zone comme ceci (je suis à Istanbul):
Vous pouvez trouver les valeurs de fuseau horaire complètes à partir d' ici .
Remarque: Ma version du framework Spring est: 4.0.7.
la source
<task:scheduled ref="paypalCronJob" method="runTask" cron="0 0 6 * * * ?"/>
??Vous pouvez utiliser annoter votre méthode avec
@Scheduled(cron ="0 1 1 * * ?")
.0 - est pour les secondes
1 à 1 minute
1 - heure de la journée.
la source
Quelque chose manque dans la réponse de Gipinani
Cela s'exécutera à 1.01 et 13.01. Il peut être utilisé lorsque vous devez exécuter le travail sans modèle plusieurs fois par jour.
Et l'attribut de zone est très utile lorsque vous effectuez des déploiements sur des serveurs distants. Cela a été introduit avec le printemps 4.
la source
J'ai remarqué une chose: le CronTrigger de printemps n'est pas le cron. Vous pouvez vous retrouver avec 7 paramètres dans une expression cron valide (que vous pouvez valider sur cronmaker.com) et ensuite ne pas l'accepter. La plupart des cas, vous venez de supprimer le dernier paramètre et tout fonctionne bien.
la source
Expression cron de printemps pour tous les jours 1: 01: am
@Programmé (cron = "0 1 1? * *")
pour plus d'informations, consultez ces informations:
https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
la source