Scheduled 每月最后一天晚上8点 ;关于@Scheduled cron表达式中不支持每月最后一天`L`的解决方案
- 工作小总结
- 时间:2021-10-08 19:49
- 3395人已阅读
简介
关于@Scheduled cron表达式中不支持每月最后一天`L`的解决方案
🔔🔔好消息!好消息!🔔🔔
如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号,代升级ChatGPT4
有需要的朋友👉:微信号
在工作中,我们有时候会用定时任务。Scheduled 每月最后一天晚上8点
有两种写法:
@Scheduled(cron = "0 0 20 28–31 * ?") public void carryOver() { //TODO }
这种写法,如果报错:
L不识别。
关于Spring定时任务每月最后一天 corn表达式使用L 报错 可以使用如下解决办法:
修改:第二种写法:
@Scheduled(cron = "0 59 23 28-31 * ?") public void execute() { final Calendar c = Calendar.getInstance(); /** * c.get(Calendar.DATE) 当前时间 * c.getActualMaximum(Calendar.DATE) 本月最后一日 */ if (c.get(Calendar.DATE) == c.getActualMaximum(Calendar.DATE)) { //show your code } }
说明:需要在代码里面判断是否当月最后一天。
因为:首先,每月最后一天可能为(28,29,30,31)这几天只需要在这几天调度程序,在程序中判断是否为最后一天,如果是则执行需要执行的代码块