GitHub Actions 定时任务时间偏差问题 | AI生成和翻译
这是一个 Git 风格(例如 GitHub Actions)的定时触发器。我们来解析一下:
-
on: schedule:
表示该工作流将按日历计划运行,而不仅是在推送或拉取请求事件时触发。 -
- cron: '0 * * * *'
标准的五字段 cron 表达式:┌──────── 分钟 (0) │ ┌────── 小时 (*,即每小时) │ │ ┌──── 月份中的日期 (*,即每日) │ │ │ ┌── 月份 (*,即每月) │ │ │ │ ┌ 星期几 (*,即每周所有日期) │ │ │ │ │ 0 * * * *→ 在每个小时的 0 分钟运行(即 UTC 时间 00:00、01:00、02:00…23:00),每日执行。
-
但上方的注释说明:
每周一至周五 UTC 时间 05:00–13:00 每小时运行
05:00–13:00 UTC = 北京时间 13:00–21:00 (UTC+8)若要实现该意图(仅工作日时段运行),实际需要更精确的 cron 表达式,例如:
on: schedule: - cron: '0 5-13 * * 1-5'表示:
- 在 0 分钟
- UTC 时间 5 至 13 点期间
- 每周一(1)至周五(5)执行
对应北京时间(UTC+8)即为工作日的 13:00–21:00。
简而言之:
- 当前配置(
'0 * * * *')会全天候每小时整点触发 - 注释描述的是仅限工作日 UTC 时间 05:00–13:00 的时段——若需实现该需求,需将 cron 表达式的小时字段改为
5-13,星期字段改为1-5