如果业务量的变化时间可预测,您可以创建定时任务,在业务高峰到达前准备好足量的计算资源,或者在业务高峰后释放空闲的计算资源。
背景信息
定时任务是一种预设任务,可以在指定时间执行指定伸缩规则,实现自动扩张或者收缩计算资源,满足业务需求的同时又能控制成本。您还可以为定时任务指定重复周期,通过灵活的规则应对业务量的变化。
 
       说明 一个账号下可以创建的定时任务数量有限,请参见 
       使用限制。 
      
 
     定时任务支持设置自动重试时间,避免因为单次执行伸缩规则失败影响定时任务的结果。如果同一分钟内存在多个待执行的定时任务,弹性伸缩会执行最新创建的定时任务。
操作步骤
- 登录弹性伸缩控制台。
- 在左侧导航栏中,单击。
- 在顶部菜单栏处,选择地域。
- 单击创建定时任务。
- 配置定时任务。 
       
- 单击确认。
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执行任务 |