本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
计划表达式参考
使用这些参考表为计划查询构造计划表达式。所有时间均采用 UTC。
Cron 表达式语法
格式:cron(minute hour day-of-month month day-of-week year)
| 使用场景 | Cron 表达式 | 描述 | 何时使用 |
|---|---|---|---|
| 每日日程安排 | cron(0 9 * * ? *) |
世界标准时间每天上午 9:00 | 每日报告 |
cron(0 */6 * * ? *) |
每 6 个小时(世界标准时间 00:00、06:00、12:00、18:00) | 频繁监控 | |
cron(30 2 * * ? *) |
世界标准时间每天凌晨 2:30 | 非高峰期分析 | |
| 营业时间 | cron(0 9-17 ? * MON-FRI *) |
世界标准时间周一至周五上午 9 点至下午 5 点,每小时一班 | 业务监控 |
cron(0 18 ? * MON-FRI *) |
世界标准时间工作日下午 6:00 | 工作日结束 | |
cron(0 8,12,17 ? * MON-FRI *) |
世界标准时间工作日上午 8 点、中午和下午 5 点 | 关键商业时间 | |
| 每周日程安排 | cron(0 12 ? * SUN *) |
世界标准时间每周日中午 | 每周摘要 |
cron(0 9 ? * MON *) |
世界标准时间每周一上午 9:00 | 一周开局报告 | |
cron(0 23 ? * FRI *) |
世界标准时间每周五晚上 11:00 | 周末清理 | |
| 每月日程安排 | cron(0 0 1 * ? *) |
每个月的第一天午夜(UTC) | 月度报告 |
cron(0 9 L * ? *) |
每个月的最后一天世界标准时间上午 9:00 | 月末处理 | |
cron(0 10 1 1,4,7,10 ? *) |
每个季度的第一天世界标准时间上午 10:00 | 季度分析 | |
| 高频率 | cron(*/15 * * * ? *) |
每 15 分钟一次 | 实时监控 |
cron(0,30 * * * ? *) |
每 30 分钟(上午和下午 30 点) | 经常检查 | |
cron(0 */2 * * ? *) |
每 2 小时 | 定期间隔 | |
| 特殊案例 | cron(30 8 1 1 ? *) |
世界标准时间 1 月 1 日上午 8:30 | 年度报告 |
cron(0 6 * * SAT,SUN *) |
周末世界标准时间上午 6:00 | 周末处理 | |
cron(0 0 ? * MON#1 *) |
每个月的第一个星期一世界标准时间午夜 | 月度计划 |
Cron 表达式字段引用
| 字段 | 值 | 通配符 | 示例 |
|---|---|---|---|
| 分钟(第 1 分钟) | 0-59 | * , - / |
0(每小时)、*/15(每 15 分钟一次)、0,30(每小时两次) |
| 小时(第 2 小时) | 0-23 | * , - / |
9(上午 9 点)、*/2(每 2 小时)、9-17(营业时间) |
| Day-of-month (第 3 名) | 1-31、L、W | * , - / ? |
1(第 1 天)、L(最后一天)、?(使用时 day-of-week) |
| 月(第 4 个月) | 1-12 或 JAN-DEC | * , - / |
1(一月),JAN,1,4,7,10(每季度) |
| Day-of-week (第 5 名) | 1-7 或 SUN-SAT | * , - / ? # L |
MON-FRI(工作日),SUN,MON#1(第一个星期一) |
| 年份(第 6 年) | 1970-2199 | * , - / |
*(每年)、2024(特定年份)、2024-2026(范围) |
通配符和特殊表达式
*(星号)-
匹配该字段中的所有值。示例:
*在 “小时” 字段中表示每小时。 ?(问号)-
没有具体值。在 day-of-month或指定了另一个 day-of-week时使用。示例:
?在中指定 day-of-month时使用MON-FRIin day-of-week。 -(短划线)-
值的范围。示例:
MON-FRI(周一至周五),9-17(上午 9 点到下午 5 点)。 ,(逗号)-
多个特定值。示例:
MON,WED,FRI(星期一、星期三、星期五)、8,12,17(上午 8 点、中午、下午 5 点)。 /(斜线)-
步长值或增量。示例:
0/15以分钟为单位表示从第 0 分钟(0、15、30、45)开始每 15 分钟。*/2以小时为单位表示每 2 小时。 L(最后)-
一个月的最后一天或工作日的最后一天。示例:
Lin day-of-month 表示一个月的最后一天。FRIL表示每月的最后一个星期五。 W(工作日)-
最近的工作日。示例:
15W表示最接近当月 15 日的工作日。 #(第 n 次出现)-
一个月中第 N 个工作日出现。示例:
MON#1表示每月的第一个星期一,FRI#2表示该月的第二个星期五。
常见模式和最佳实践
-
对于业务应用程序:使用
MON-FRI和工作时间(例如9-17)以避免在周末或非工作时间运行查询。 -
对于高频监控:使用诸如
*/15(每 15 分钟)之类的增量,但要注意查询并发限制。 -
提高资源效率:使用清晨时间(如 UTC)在非高峰时段安排资源密集型查询。
2-6 -
对于月度报告:
L用于每月的最后一天或特定日期(例如1第一天),以确保时间一致。