本文为您介绍DataWorks Cron表达式语法。
功能介绍
调度时间的自定义表达式为邀测功能,您可以联系技术支持申请使用该功能。
DataWorks支持使用表单或自定义表达式方式来定义任务的调度时间,调度时间的功能介绍详见时间属性配置。调度时间基于 CronSequenceGenerator实现Cron表达式解析,支持Spring标准Cron格式。同时,根据实际调度场景进行了功能扩展,可实现月末最后一天和每月第几个星期几等场景。
注意:表单模式和自定义表达式模式不支持相互转换,转换后调度时间会自动调整为默认值(00 00 00 * * ?),需重新配置。
其中,使用Cron表达式可以实现更灵活的调度时间定义,例如:
指定具体日期
月末处理(如
L)多个值组合(如
1,3)最后一周几(
L)、第 N 个星期几等(#)
当前版本使用 6 位格式,结构如下:
秒 分 时 日 月 周示例:每月的 1 号、3 号 的 01:00:00 触发任务。
00 00 01 1,3 * ?当前版本中不支持秒级别的调度配置,因此,第一位秒级需固定配置为00。
不支持“年”字段,所有任务默认每年循环执行。
字段说明
位置 | 字段名 | 取值范围 | 允许特殊字符 | 说明 |
1 | 秒(Seconds) |
| - | 不支持修改 |
2 | 分(Minutes) |
|
| - |
3 | 时(Hours) |
|
| 24 小时制 |
4 | 日(Day of Month) |
|
| 表示月中的日期,其中L表示月末最后一天 |
5 | 月(Month) |
|
| - |
6 | 周(Day of Week) |
重要 不支持英文缩写(如 |
|
|
特殊字符
字符 | 名称 | 说明 |
| 通配符 | 表示所有可能的值。例如,在 |
| 不指定 | 用于 |
| 范围 | 表示一个连续的范围。例如, |
| 列表 | 表示一个离散的值列表。例如, |
| 步长 | 定义值的增量。例如, |
| Last |
|
| Nth Day | 用于 |
语法详解与示例
1. 枚举多个日期:,
00 00 00 1,15 * ?每月 1 号和 15 号 00:00:00 执行(常用于双薪日、对账)
2. 使用 L:月末或最后一周几
00 00 00 L * ?每月最后一天 00:00:00 执行(月末结算)
00 00 00 * * 7L每月最后一个周六 00:00:00 执行
00 00 00 ? * 2L每月最后一个周一 00:00:00 执行
3. 使用 #:第 N 个星期几
00 00 00 ? * 3#2每月第二个周二 00:00:00 执行
00 00 00 * * 6#3每月第三个周六 00:00:00 执行
⚠️ 若该月不存在第 5 个周六,则跳过当月
4. 组合写法(推荐用于复杂调度)
00 00 00 1,3 * 6L在每月的 1 号、3 号 和 最后一个周五 的 00:00:00 触发任务
典型应用场景
cron表达式 | 描述 |
| 每日凌晨2点整执行。 |
| 每日上午10点15分执行。 |
| 每日14:00至15:00期间,每5分钟执行一次。 |
| 每周一的凌晨1点整执行。 |
| 每周四的2点整和4点整执行。 |
| 每月最后一天的凌晨2点整执行。 |
| 每月最后一个周五的凌晨2点整执行。 |
| 每月第一个周三的凌晨1点整执行。 |
| 每月的3号和第一个周三的凌晨1点整执行。 |