时间戳与调度指南
月末调度:避免每月 31 日陷阱
选择每月真实最后一天,在使用 L 前确认实际调度器方言支持。
31 日不等于月末
日期字段为 31 只匹配有该日期的月份,会跳过二月、四月、六月、九月和十一月。
需要每月运行的报表不能用它,连续预览可看到月份缺口。
0 0 31 * *
Runs on January 31, then March 31; February is skipped.确认扩展语法支持
部分 Cron 实现支持 L 表示最后一天,标准五字段 crontab 没有定义此扩展。
解析器接受 L 不证明生产调度器也接受,需要测试实际方言和版本。
需要时使用每日业务判断
每日调度配合应用日历判断,可绕开扩展语法:检查明天是否进入另一个月。
应在目标本地日历中构造明天,时区切换时直接加 24 小时未必等价。
Schedule: 0 0 * * *
Application condition: local month(tomorrow) != local month(today)区分自然月末和工作月末
最后自然日可能是周末或节假日,最后工作日还需要地区与假日日历。
记录日历版本,并测试二月、30 天月份和节假日月末;本站日期工具不提供假日数据。