我有以下方法声明:
@Scheduled(cron = "0 0 12 ? * MON#1")
protected synchronized void execute() {...}
但是我的应用程序启动失败,我在日志中看到以下错误:
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
怎么纠正呢?
当Spring Boot无法识别cron表达式时发生错误。可能是由于MON#1
部分。
Spring文档和本文可能有助于在Spring boot中找到正确的cron表达式。
文档中的一些示例:
"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 8,10 * * *" = 8 and 10 o'clock of every day.
"0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30 and 10 o'clock 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
从帖子中(包括秒数):
每天中午12点:0 0 12 * * ?
每五分钟从下午1点开始到下午1:55结束,然后从下午6点开始到下午6:55结束,每天:0 0/5 13,18**
从下午1点开始到下午1:05结束的每分钟,每天:
0-5 13**
在6月的每个星期二下午1:15和1:45:
0 15,45 13?6星期二
每周一、二、三、四、五上午9:30:
0 30 9?*MON-FRI
每月15日上午9:30:
0 30 9 15*
每月最后一天下午6点:
0 0 18 L * ?
每月第三天到最后一天下午6点:
0 18 L-3*
每月最后一个星期四上午10:30:
0 30 10?*5L
每月第三个星期一上午10点:
010?*2#3
从每月10日开始的五天内,每天午夜12点:
0 10/5*
我试图将字符串时间戳转换为整数时间戳,并使用postgres作为数据库。
问题内容: 我正在尝试获得系统的运行平衡。为此,我从AMOUNT列获取jtable中所有数字的总和,然后将总和减去txtLoanAmount内部的值。这是我的代码段: 现在我收到错误消息: 我该如何解决呢?任何帮助将不胜感激。谢谢 问题答案: 由于Float.parseFloat()和Float.valueOf()始终将数字假定为您的本地格式,因此,这是一个简短的示例,如果您的语言环境与您获取的数
是来自用户的输入。 如何在不使用try catch的情况下解决此错误?
问题内容: 所以,我有一个问题真的困扰我。我有一个用Java开发的简单解析器。这是相关代码: 输入文件是CSV文件,文件的第一项是整数。当我开始解析时,我立即得到这个异常: 我检查了文件,它的第一个值确实为1(该字段中没有其他字符),但仍然收到消息。我认为这可能是由于文件编码所致:它是UTF-8,带有Unix终端。该程序在Ubuntu 14.04上运行。欢迎寻找问题的任何建议。 问题答案: 您在该