1、Caused by: java.lang.IllegalStateException: Encountered invalid
2、@Scheduled method 'execute': For input string: "L"
3、查其原因是Spring默认定时@Scheduled不支持L,W,C特殊字符
解决方案:
首先,为每个可能的最后几天调用调度程序(28,29,30,31)。然后,在函数块内用if块检查这是否是最后一个日期。如果是,则执行预期的任务:
@Scheduled(cron = "0 0 12 28-31 * ?")//每月最后一天12点执行
public void execute() {
final Calendar c = Calendar.getInstance();
//如果是最后一天 则执行定时任务
if (c.get(Calendar.DATE) == c.getActualMaximum(Calendar.DATE)) {
System.out.println("消息推送定时Job开始。。。。");
}
}