Search code examples
javaspringspring-bootcron

How to write a cron expression that runs every 5 mins from 9:30 to 4:00 am on weekdays in spring/java?


I have a Spring Boot application that has a cron expression for a job that I would like to run on weekdays MON-FRI between 9:30 am to 4:00 pm every 5 mins.

But looks like the cron expression is not correct.

application.properties

job.signal.cron=0 0/5 9:30-16 * * MON-FRI

Error at startup:

Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'findSignal': For input string: "9:30" '9:30-16' in cron expression "0 0/5 9:30-16 * * MON-FRI"
        at org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor.processScheduled(ScheduledAnnotationBeanPostProcessor.java:511) ~[spring-context-5.3.3.jar:5.3.3]
        at org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor.lambda$null$1(ScheduledAnnotationBeanPostProcessor.java:374) ~[spring-context-5.3.3.jar:5.3.3]
        at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
        at org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor.lambda$postProcessAfterInitialization$2(ScheduledAnnotationBeanPostProcessor.java:374) ~[spring-context-5.3.3.jar:5.3.3]
        at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:na]
        at org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor.postProcessAfterInitialization(ScheduledAnnotationBeanPostProcessor.java:373) ~[spring-context-5.3.3.jar:5.3.3]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:444) ~[spring-beans-5.3.3.jar:5.3.3]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792) ~[spring-beans-5.3.3.jar:5.3.3]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:609) ~[spring-beans-5.3.3.jar:5.3.3]
        ... 21 common frames omitted

Solution

  • You can try this

    0 30-55/5 9 * * MON-FRI
    0 */5 10-15 * * MON-FRI
    0 0 16 * * MON-FRI