vk1*_*vk1 4 cron spring spring-mvc scheduled-tasks spring-boot
我正在尝试根据 Spring cron 表达式按固定计划执行我的代码。我希望代码在每个月的第一个星期一上午 10:00 执行。
@Scheduled(cron = "")
public void sendEmail() {
// ...
}
Run Code Online (Sandbox Code Playgroud)
当我写:
@Scheduled(cron = "0 0 12 ? * MON#1")
protected synchronized void execute() {...}
Run Code Online (Sandbox Code Playgroud)
应用程序在启动时打印以下错误:
Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'execute': For input string: "1#1"
at org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor.processScheduled(ScheduledAnnotationBeanPostProcessor.java:461) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor.postProcessAfterInitialization(ScheduledAnnotationBeanPostProcessor.java:331) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:423) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1633) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
... 19 common frames omitted
Run Code Online (Sandbox Code Playgroud)
我在这里回答了一个类似的问题 如何在春季@Scheduled 中使用 cron 表达式在每月的第一个星期一解雇工作?
该模式是一个由六个以空格分隔的字段的列表:代表秒、分、小时、日、月、工作日。月份和工作日名称可以作为英文名称的前三个字母给出。 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html
你可以使用这个表达式。一个月的前 7 天只有一个星期一。
"0 0 10 1-7 * MON"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6407 次 |
| 最近记录: |