配置 Cron 作业时间表

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Cron 作业按周期性间隔进行安排,使用基于 unix-cron 的格式指定。您可以定义时间表,以便让您的作业每天运行多次,或在特定的日期和月份运行。(虽然我们不再推荐使用,但现有作业仍支持旧版 App Engine cron 语法。)

Cron 作业格式

时间表使用 unix-cron 字符串格式 (* * * * *) 定义,该格式表示一行中的五个字段,指示应在何时执行作业。

unix-cron 字符串格式

您可以使用 Google Cloud Console、Google Cloud CLI 或 Cloud Scheduler REST API 来设置您的时间表。

时间字段具有以下格式和可能的值,并且必须遵循以下顺序:

字段 有效值的范围
分钟 0-59
小时 0-23
日期 1-31
1-12(或 1 月到 12 月)
周几 0-6(或周日至周六;周日为 7)

特殊字符

  • 字段可以包含星号 (*),始终表示“倒数第一个”。
  • 范围是用连字符 (-) 分隔的两个数字,指定范围包含边界值。
  • 如果后跟一个范围,/NUMBER 会指定跳过该范围内对应的数字值。例如,可以在 Hour 字段中使用 0-23/2*/2 指定每两小时执行一次。
  • 列表是用英文逗号分隔的数字 (或范围) 集 (,)。例如,Day of the month 字段中的 1,2,5,6 可指定在当月第 1 天、第 2 天、第 5 天和第 6 天执行一次。

时区

您可以在 Google Cloud 控制台(在创建作业页面上,从列表中选择时区)或选择创建作业时通过 gcloud --time-zone 标志选择用于评估时间表的时区。默认时区为 Etc/UTC

对于某些时区,夏令时可能会导致作业运行或意外运行。这是因为 Cloud Scheduler 按挂钟时间运行。如果时间可能会发生两次(例如,时钟倒退的情况),而此时已安排了您的作业,则您的计划作业可能会观察到执行异常。

如果您的作业需要非常具体的节奏,您可能需要考虑选择不考虑夏令时的时区。具体而言,建议使用 Cloud Scheduler 世界协调时间 (UTC),以完全避免此问题。

示例时间表

下表显示了一些示例 cron 作业时间表及其说明:

示例时间表 Cron 作业格式
每分钟 * * * * *
每个星期六的 23:45 (11:45 PM) 45 23 * * 6
每周一上午 9:00(上午 9:00) 0 9 * * 1
每周日上午 04:05(凌晨 4:05) 5 4 * * SUN
每个工作日的 22:00(晚上 10:00) 0 22 * * 1-5