如果业务量的变化时间可预测,您可以创建定时任务,在业务高峰到达前准备好足量的计算资源,或者在业务高峰后释放空闲的计算资源。
背景信息
定时任务是一种预设任务,可以在指定时间执行指定伸缩规则,实现自动扩张或者收缩计算资源,满足业务需求的同时又能控制成本。您还可以为定时任务指定重复周期,通过灵活的规则应对业务量的变化。
说明 一个账号下可以创建的定时任务数量有限,请参见
使用限制。
定时任务支持设置自动重试时间,避免因为单次执行伸缩规则失败影响定时任务的结果。如果同一分钟内存在多个待执行的定时任务,弹性伸缩会执行最新创建的定时任务。
操作步骤
- 登录弹性伸缩控制台。
- 在左侧导航栏中,单击 。
- 在顶部菜单栏处,选择地域。
- 单击创建定时任务。
- 配置定时任务。
- 单击确认。
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定时任务一小时限制执行一次。
- 当日期或星期域其中之一被指定了值以后,为了避免冲突,需要将另一个域的值设为
?
。
域 | 是否必需 | 取值范围 | 特殊字符 |
---|---|---|---|
分钟 | 是 | 0~59 | , - / * |
小时 | 是 | 0~23 | , - / * |
日 | 是 | 1~31 | , - / * ? L W |
月 | 是 | 1~12 | , - / * |
星期 | 是 | 1~7,星期日取值为7 | , - * ? / L # |
特殊字符 | 含义 | 示例 |
---|---|---|
* |
所有可能的值。 | 在月域中,* 表示每个月;在星期域中,* 表示星期的每一天。 |
, |
列出枚举值。 | 在分钟域中,5,20 表示第5分钟和第20分钟。 |
- |
范围。 | 在分钟域中,5-20 表示从第5分钟到第20分钟之间的每一分钟。 |
/ |
指定数值的增量。 | 在分钟域中,0/15 表示从第0分钟开始的每15分钟,3/20 表示从第3分钟开始的每20分钟。 |
? |
不指定值,仅日期和星期域支持该字符。
说明 当日期或星期域其中之一被指定了值以后,为了避免冲突,需要将另一个域的值设为
? 。
|
在日期域中,? 表示不指定具体日期。在星期域中,? 表示不指定具体星期几。比如,15 10 15 * ? 表示每月15日上午10:15执行任务,无论第15日是星期几。 |
L |
单词Last的首字母,表示最后一天,仅日期和星期域支持该字符。
说明 指定
L 字符时,避免指定列表或者范围,否则,会导致逻辑问题。
|
|
W |
除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。W 字符寻找最近有效工作日时不会跨过当前月份,连用字符LW 时表示为指定月份的最后一个工作日。 |
在日期域中5W ,如果5日是星期六,则将在最近的工作日星期五,即4日触发。如果5日是星期天,则将在最近的工作日星期一,即6日触发;如果5日在星期一到星期五中的一天,则就在5日触发。 |
# |
指定每个月第几个星期几,仅星期域支持该字符。 取值范围:1~5。 | 在星期域中,4#2 表示某月的第二个星期四。 |
示例 | 说明 |
---|---|
15 10 ? * * |
每天18:15执行任务 |
0 12 * * ? |
每天20:00执行任务 |
0 10,14,16 * * ? |
每天18:00点、22:00以及00:00执行任务 |
15 10 15 * ? |
每月15日18:15执行任务 |
15 10 L * ? |
每月最后一日18:15执行任务 |
15 10 ? * 6L |
每月最后一个星期六18:15执行任务 |
15 10 ? * 6#3 |
每月第三个星期六18:15执行任务 |