Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spring Scheduling - Cron expression for everyday at midnight not working?

I am trying to schedule a task in Spring which is to be run everyday at midnight. I followed the official guide from Spring and made the scheduler class as below:

@Component public class OverduePaymentScheduler {         @Scheduled(cron = "0 0 0 * * *")     public void trackOverduePayments() {         System.out.println("Scheduled task running");     } } 

However the task does not run when the clock hits 12am. I got the cron expression from the documentation for quartz scheduler at this link.

The scheduler is executed fine if I change the cron expression to "*/10 * * * * *" which runs every ten seconds.

So what am I doing wrong?

like image 227
Charlie Avatar asked Jul 16 '17 03:07

Charlie


1 Answers

These are valid formats for cron expressions:

  • 0 0 * * * * = the top of every hour of every day.
  • */10 * * * * * = every ten seconds.
  • 0 0 8-10 * * * = 8, 9 and 10 o'clock of every day.
  • 0 0 6,19 * * * = 6:00 AM and 7:00 PM every day.
  • 0 0/30 8-10 * * * = 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day.
  • 0 0 9-17 * * MON-FRI = on the hour nine-to-five weekdays
  • 0 0 0 25 12 ? = every Christmas Day at midnight

The pattern is:

second, minute, hour, day, month, weekday 

So your answer is:

0 0 0 * * * 
like image 93
Rzv Razvan Avatar answered Sep 28 '22 09:09

Rzv Razvan