时间戳与调度指南

月末调度:避免每月 31 日陷阱

选择每月真实最后一天,在使用 L 前确认实际调度器方言支持。

Nav Tools ·

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 天月份和节假日月末;本站日期工具不提供假日数据。

参考资料

← 时间戳与调度指南