定时任务是一种预设任务,可以在指定时间执行指定伸缩规则,实现计算资源的自动扩张或收缩,满足业务需求的同时又能控制成本。
支持的主要配置项
定时任务支持的主要配置项如下所示:
配置项 | 说明 |
执行时间 | 表示定时任务的触发时间。
重要 请勿填写自创建或修改当天起90日后的时间,否则定时任务无法生效。 |
伸缩组 | 表示设置定时任务功能的目标伸缩组(已创建的伸缩组)。更多信息,请参见伸缩组概述。 |
伸缩方式 |
|
伸缩规则(简单规则) | 如果伸缩方式为选择已有伸缩规则时,才会出现该配置项,请您选择已创建的伸缩规则(简单规则)。更多信息,请参见配置伸缩规则或CreateScalingRule。 |
重试过期时间(秒) | 表示在时间间隔内重新执行定时任务,避免因为单次执行伸缩规则失败影响定时任务的结果。如果同一分钟内存在多个待执行的定时任务,弹性伸缩会执行最新创建的定时任务。 |
重复周期 | 表示定时任务重复执行的规则。您可以选择不设置、按天、按星期、按月的方式重复执行定时任务,如果要求多样,也可以使用Cron表达式。Cron表达式的详细介绍,请参见Cron表达式。 说明 修改定时任务的重复周期方式时,不支持修改为不设置选项。 |
Cron表达式
在弹性伸缩控制台配置定时任务的重复周期参数时,您可以选择Cron表达式来进行设置。
Cron表达式是一个具有时间含义的字符串,每个具有时间含义的字符叫做域,域之间用空格隔开。弹性伸缩的定时任务支持5个域的Cron表达式,格式为X X X X X
,X
是一个域的占位符。Cron表达式中的每个域依次表示分钟、小时、天、月和星期,每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。
定时任务配置Cron表达式时,需要注意以下内容:
Cron表达式采用UTC+0时区,在配置Cron表达式时,您需要把本地时间换算成在UTC+0时区的时间。例如,中国的时区是UTC+8,如果您计划在中国时区(例如每天20:00)执行任务,需要将计划执行时间减去8小时,设置的Cron表达式应为
0 12 * * ?
。单个Cron定时任务五分钟限制执行一次。
确保Cron表达式第一次执行的时间小于定时任务的重复结束时间,否则会提示参数错误。
域 | 是否必需 | 取值范围 | 特殊字符 |
分钟 | 是 | 0~59 | , - / * |
小时 | 是 | 0~23 | , - / * |
日 | 是 | 1~31 | , - / * ? L W |
月 | 是 | 1~12 | , - / * |
星期 | 是 | 1~7,星期日取值为7 | , - * ? / L # |
特殊字符 | 含义 | 示例 |
| 域内的所有可能值。 | 在月域中, |
| 列出枚举值。 | 在分钟域中, |
| 表示范围值。 | 在分钟域中, |
| 指定数值的增量。 | 在分钟域中, |
| 不指定值,仅日期域和星期域支持该字符。 说明 当日期或星期域其中之一被指定了值以后,为了避免计算冲突,需要将另一个域的值设为 | 在日期域中, |
| 单词Last的首字母,表示最后一天,仅日期域和星期域支持该字符。 说明 指定 |
|
| 除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。 | 在日期域中 |
| 指定每个月第几个星期几,仅星期域支持该字符。取值范围:1~5。 | 在星期域中, |
表 4. 取值示例
下表以UTC+0时区为例,说明不同的Cron表达式示例代表的含义。在设置Cron表达式时,请注意将本地时间换算成在UTC+0时区的时间。
示例 | 说明 |
| 每天10:15执行任务 |
| 每天9:15执行任务 |
| 每天12:00执行任务 |
| 每天10:00、14:00以及16:00执行任务 |
| 每月15日10:15执行任务 |
| 每月最后一日10:15执行任务 |
| 每月最后一个星期六10:15执行任务 |
| 每月第三个星期六10:15执行任务 |
如何配置定时任务
配置定时任务的相关文档如下所示:
控制台文档 | 操作项 | API文档 |
创建定时任务 | ||
修改定时任务 | ||
启用定时任务 | 无 | |
停用定时任务 | 无 | |
删除定时任务 |
创建定时任务完成后,您也可以调用DescribeScheduledTasks接口查看定时任务的详细信息。