雷丰阳Springboot视频培训教程问题解决记录之九——Spring定时任务及Encountered invalid @Scheduled method For Input String错误
2019-04-28 15:26
1161 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lswx2006/article/details/89639073
支持的注解参数
fixedRate在调用之间以固定的毫秒数执行该方法。fixedRateString与fixedRate相同但是使用字符串值。fixedDelay在一次调用结束和下一次调用开始之间以固定的毫秒数执行该方法。fixedDelayString与fixedDelay相同但是使用字符串值。cron使用类似cron的表达式来确定何时执行该方法。
zone指示将解析cron表达式的时区,如果未包含时区,则将使用服务器的默认时区。因此,如果需要它来运行特定的时区,比如香港,可以使用zone = "GMT+8:00"。initialDelay延迟第一次执行计划任务的毫秒数,要求使用固定速率或固定延迟属性之一。initialDelayString与initialDelay相同但是使用字符串值。
Spring类cron表达式
格式如下:
[Seconds] [Minutes] [Hours] [Day of month] [Month] [Day of week]
Spring允许的表达式是所有可能的cron表达式的子集,例如它不包含year字段,并且不能使用所有特殊字符。
Seconds可以有值0-59或特殊字符, - * /。Minutes可以有值0-59或特殊字符, - * /。Hours可以有值0-23或特殊字符, - * /。Day of month可以有值1-31或特殊字符, - * ? /。Month可以有值1-12,JAN-DEC或特殊字符, - * /。Day of week可以有值1-7,SUN-SAT或特殊字符, - * ? /。
特殊字符的含义:
*表示所有值,如果在第二个字段中使用它表示每秒或在日期字段中使用意味着每天运行。?表示没有特定值,可以在月中或星期几字段中使用,其中一个使用则另一个无效。如果指定在一个月的第15天触发,那么?将在该Day of week字段中使用 。-表示包含范围的值,例如小时字段中的1-3表示小时1,2和3。,表示其他值,例如星期几中的MON,WED,SUN表示星期一,星期三和星期日。/表示增量,例如秒数字段中的0/15从0(0,15,30和45)开始每15秒触发一次。
Encountered invalid @Scheduled method 。。。For input string错误
@EnableAsync @EnableScheduling @SpringBootApplication public class AsyncdemoApplication { public static void main(String[] args) { SpringApplication.run(AsyncdemoApplication.class, args); } } ------------------------------------------------------------------------ @Service public class ScheduledService { @Scheduled(cron = "0 22/1 14 ? 4 7L") public void scheduledCall() { System.out.println("called!"); } }
在上文的表达式中,会出现如下错误
Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method ‘scheduledCall’: For input string: “7L”
错误的根源是 Spring 的表达式 只是 cron表达式的子集,它不包含year字段,并且不能使用所有特殊字符,比如L和W,大部分的文档有误导。
相关文章推荐
- 雷丰阳Springboot视频培训教程问题解决记录之十——邮件发送以及java.lang.IllegalStateException: Not in multipart mode错误
- Java解析DBF文件,错误Failed to parse Number: For input string: "-.---" 或读取不出数据或乱码问题都在这里解决
- Java解析DBF文件,错误Failed to parse Number: For input string: "-.---" 或读取不出数据或乱码问题都在这里解决
- NumberFormatException: For input string: "undefined"问题解决记录
- SpringBoot整合Swagger2案例,以及报错:java.lang.NumberFormatException: For input string: ""原因和解决办法
- Spring配置文件加载时出现Bean property 'newscontentDAO' is not writable or has an invalid setter method错误的解决[00原创]
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- hibernate 中createSQLQuery 聚合分组 java.lang.NumberFormatException: For input string:错误的一个解决办法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 《Springboot极简教程》问题解决:Springboot启动报错 Whitelabel Error Page: This application has no explicit mapping for(转)
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- The method list(String, Object[]) is ambiguous for the type BaseHibernateDao<M,PK>错误解决方法
- SpringBoot 定时任务踩坑记录
- 解决使用Spring Boot、Multipartfile上传文件路径错误问题
- SpringBoot@Scheduled实现定时任务
- 解决spring quartz定时任务执行2次的问题
- Springboot 之 使用Scheduled做定时任务
- 解决Spring自带的定时任务执行两次的问题
- 解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE