2017-07-16 1 views
1

J'essaie de planifier une tâche au printemps qui doit être exécutée tous les jours à minuit. J'ai suivi le official guide du printemps et fait la classe de programmation comme ci-dessous:Spring Scheduling - Expression Cron pour tous les jours à minuit ne fonctionne pas?

@Component 
    public class OverduePaymentScheduler {  

     @Scheduled(cron = "0 0 0 * * *") 
     public void trackOverduePayments() { 

       System.out.println("Scheduled task running"); 

     } 
    } 

Cependant, la tâche ne fonctionne pas lorsque l'horloge frappe douze heures. J'ai obtenu l'expression de cron de la documentation pour le planificateur de quartz à ce link.

Le planificateur est exécuté correctement si je change l'expression de cron en "*/10 * * * * *" qui s'exécute toutes les dix secondes.

Alors qu'est-ce que je fais mal?

Répondre

0

J'ai finalement réussi à l'utiliser avec cette expression cron 0 0 0 * * * mais j'ai dû définir le fuseau horaire dans la classe du programmateur comme ceci. @Scheduled(cron = "0 0 0 * * *",zone = "Indian/Maldives")

3

S'il vous plaît utiliser ci-dessous pour motif Cron 00h00 tous les jours:

// at 12:00 AM every day 
    @Scheduled(cron="0 0 0 * * ?") 

J'ai vérifié votre modèle cron sur ce site: http://www.cronmaker.com/.

Le motif 0 0 0 * * * est invalide.

+0

J'ai essayé mais cela ne fonctionne pas. J'apprécie l'aide cependant. –

+0

J'ai utilisé ce modèle cron dans mon projet. cela fonctionne bien ... j'ai testé maintenant aussi en changeant mon horloge système à 23:59 PM et le planificateur est déclenché automatiquement à 00:00 –

5

Ce sont des formats valides pour les expressions Cron:

  • 0 0 * * * * = en haut de chaque heure de chaque jour.
  • */10 * * * * * = toutes les dix secondes.
  • 0 0 8-10 * * * = 8, 9 et 10 heures de tous les jours.
  • 0 0 6,19 * * * = 6h00 et 19h00 tous les jours.
  • 0 0/30 8-10 * * * = 8h00, 8h30, 9h00, 9h30, 10h00 et 10h30 tous les jours .
  • 0 0 9-17 * * MON-FRI = à l'heure de neuf à cinq jours de la semaine
  • 0 0 0 25 12 ? = Noël tous les jours à minuit

Le modèle est:

second, minute, hour, day, month, weekday 

Votre réponse est:

0 0 12 * * * 
+1

Je crains que l'expression est pour tous les jours à 12 heures –

+1

Sorry mate. ... Je pensais que vous voulez à 12 (milieu de la journée) ... vous devez utiliser 24 au lieu de 12 ... –