全部产品
Search
文档中心

弹性伸缩:定时任务概述

更新时间:Oct 23, 2023

定时任务是一种预设任务,可以在指定时间执行指定伸缩规则,实现计算资源的自动扩张或收缩,满足业务需求的同时又能控制成本。

支持的主要配置项

定时任务支持的主要配置项如下所示:

配置项

说明

执行时间

表示定时任务的触发时间。

  • 如果未设置重复周期,则按指定的日期和时间执行一次。

  • 如果设置了重复周期,则该属性指定的时间点默认为周期性任务的执行时间点。

重要

请勿填写自创建或修改当天起90日后的时间,否则定时任务无法生效。

伸缩组

表示设置定时任务功能的目标伸缩组(已创建的伸缩组)。更多信息,请参见伸缩组概述

伸缩方式

  • 选择已有伸缩规则:您可以选择已有的伸缩规则,定时任务仅支持简单规则。更多信息,请参见伸缩规则概述

  • 伸缩组内实例数量设置:您可以直接指定伸缩组的最大实例数、最小实例数或期望实例数,新指定的数值会覆盖伸缩组原来的设置,并在指定时间立即生效。

    说明
    • 如果创建伸缩组时未开启期望实例数功能,则只能设置伸缩组的最大实例数和最小实例数。

    • 如果创建伸缩组时开启了期望实例数功能,则设置最大实例数和最小实例数后,必须同时设置期望实例数,否则会导致伸缩活动被拒绝。

伸缩规则(简单规则)

如果伸缩方式为选择已有伸缩规则时,才会出现该配置项,请您选择已创建的伸缩规则(简单规则)。更多信息,请参见配置伸缩规则CreateScalingRule

重试过期时间(秒)

表示在时间间隔内重新执行定时任务,避免因为单次执行伸缩规则失败影响定时任务的结果。如果同一分钟内存在多个待执行的定时任务,弹性伸缩会执行最新创建的定时任务。

重复周期

表示定时任务重复执行的规则。您可以选择不设置、按天、按星期、按月的方式重复执行定时任务,如果要求多样,也可以使用Cron表达式。Cron表达式的详细介绍,请参见Cron表达式

说明

修改定时任务的重复周期方式时,不支持修改为不设置选项。

Cron表达式

在弹性伸缩控制台配置定时任务的重复周期参数时,您可以选择Cron表达式来进行设置。

Cron表达式是一个具有时间含义的字符串,每个具有时间含义的字符叫做域,域之间用空格隔开。弹性伸缩的定时任务支持5个域的Cron表达式,格式为X X X X XX是一个域的占位符。Cron表达式中的每个域依次表示分钟、小时、天、月和星期,每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。

定时任务配置Cron表达式时,需要注意以下内容:

  • Cron表达式采用UTC+0时区,在配置Cron表达式时,您需要把本地时间换算成在UTC+0时区的时间。例如,中国的时区是UTC+8,如果您计划在中国时区(例如每天20:00)执行任务,需要将计划执行时间减去8小时,设置的Cron表达式应为0 12 * * ?

  • 单个Cron定时任务五分钟限制执行一次。

  • 确保Cron表达式第一次执行的时间小于定时任务的重复结束时间,否则会提示参数错误。

表 1. 域取值

是否必需

取值范围

特殊字符

分钟

0~59

, - / *

小时

0~23

, - / *

1~31

, - / * ? L W

1~12

, - / *

星期

1~7,星期日取值为7

, - * ? / L #

表 2. 特殊字符

特殊字符

含义

示例

*

域内的所有可能值。

在月域中,*表示每个月;在星期域中,*表示星期的每一天。

,

列出枚举值。

在分钟域中,5,20表示第5分钟和第20分钟。

-

表示范围值。

在分钟域中,5-20表示从第5分钟到第20分钟之间的每一分钟。

/

指定数值的增量。

在分钟域中,0/15表示从第0分钟开始的每15分钟,3/20表示从第3分钟开始的每20分钟。

?

不指定值,仅日期域和星期域支持该字符。

说明

当日期或星期域其中之一被指定了值以后,为了避免计算冲突,需要将另一个域的值设为?

在日期域中,?表示不指定具体某日期。在星期域中,?表示不指定具体某星期几。例如,以UTC+0时区为例,15 10 15 * ?表示每月15日上午10:15执行任务,无论第15日是星期几。

L

单词Last的首字母,表示最后一天,仅日期域和星期域支持该字符。

说明

指定L字符时,避免指定列表或者范围,否则,会导致逻辑问题。

  • 在日期域中,L表示某个月的最后一天。在星期域中,L表示一个星期的最后一天。

  • 如果在L前有具体的内容,例如,在星期域中的6L表示这个月的最后一个星期六。

W

除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。W字符寻找最近有效工作日时不会跨过当前月份,连用字符LW时表示为指定月份的最后一个工作日。

在日期域中5W,如果5日是星期六,则将在最近的工作日星期五,即4日触发。如果5日是星期天,则将在最近的工作日星期一,即6日触发;如果5日在星期一到星期五中的一天,则就在5日触发。

#

指定每个月第几个星期几,仅星期域支持该字符。取值范围:1~5。

在星期域中,4#2表示某月的第二个星期四。

表 4. 取值示例

下表以UTC+0时区为例,说明不同的Cron表达式示例代表的含义。在设置Cron表达式时,请注意将本地时间换算成在UTC+0时区的时间。

示例

说明

15 10 ? * *

每天10:15执行任务

15 9 * * *

每天9:15执行任务

0 12 * * ?

每天12:00执行任务

0 10,14,16 * * ?

每天10:00、14:00以及16:00执行任务

15 10 15 * ?

每月15日10:15执行任务

15 10 L * ?

每月最后一日10:15执行任务

15 10 ? * 6L

每月最后一个星期六10:15执行任务

15 10 ? * 6#3

每月第三个星期六10:15执行任务

如何配置定时任务

配置定时任务的相关文档如下所示:

控制台文档

操作项

API文档

配置定时任务

创建定时任务

CreateScheduledTask

修改定时任务

ModifyScheduledTask

启用定时任务

停用定时任务

删除定时任务

DeleteScheduledTask

说明

创建定时任务完成后,您也可以调用DescribeScheduledTasks接口查看定时任务的详细信息。