如何写一个cron表达式,运行每5分钟从9:30到4:00在工作日的春季/java?



我有一个Spring Boot应用程序,它有一个作业的cron表达式,我想在工作日的MON-FRI在上午9:30到下午4:00之间每5分钟运行一次。

但是看起来cron的表达式是不正确的。

application.properties

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

启动错误:

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

你可以试试这个

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

最新更新