全部产品
Search
文档中心

弹性伸缩:配置定时任务

更新时间:Sep 26, 2024

如果业务量的变化时间可预测,您可以通过配置定时任务,在业务高峰到达前准备好充足的计算资源,或者在业务高峰后及时释放空闲的计算资源,满足业务需求的同时控制成本。

设计定时伸缩方案

在创建定时伸缩任务之前,您需要先设计您的定时伸缩方案。

方案一:在特定时间点触发扩缩容

  • 适用场景

    预测到在未来某一时间点会突增(减少)资源需求,定时自动扩缩容。

  • 实现方式

    创建该时间点的定时任务,并配置触发时间以及触发定时任务后执行的扩容操作。具体操作,请参见创建定时任务

  • 场景举例

    假设在双十一,您的平台会进行促销活动,为了保证服务稳定运行,您可以设置在双十一当天扩容您的计算资源以满足实际的资源需求。

方案二:按照特定时间周期扩缩容

  • 适用场景

    业务规律波动,即业务集群资源占用随时间规律波动。

  • 实现方式

    在业务集群资源占用升高的时间点,通过定时任务触发扩张。相反的,在资源占用降低的时间点,通过定时任务触发收缩。创建定时任务,请参见创建定时任务

  • 举例说明

    例如您的业务集群在每天傍晚7点时访问量增加,在凌晨1点时降低,为了应对业务访问需求的变化,您可以设置以下两个定时任务。

    • 应对访问量增加:设置傍晚7点的定时扩展任务,在每天傍晚7点,通过增加服务副本数提升集群的承载能力。

    • 应对访问量减少:设置凌晨1点的定时收缩任务,在每天凌晨1点,通过减少服务副本数从而提高资源利用率,减少不必要的成本支出。

操作入口:进入定时任务管理页

定时任务的操作页面集中在伸缩组的定时任务页面,您可以参考以下步骤进入该页面。

进入定时任务管理页

  1. 登录弹性伸缩控制台

  2. 在左侧导航栏中单击伸缩组管理

  3. 在顶部菜单栏处,选择地域。

  4. 伸缩组管理页,找到待操作伸缩组,单击伸缩组名称进入伸缩组详细页面。

  5. 单击伸缩规则与报警任务 > 定时任务页签,进入定时任务管理页。

    image

创建定时任务

在设计完成定时伸缩方案后,您可以创建定时任务实现该方案。创建定时任务的具体操作如下。

重要

一个账号下可以创建的定时任务数量有限,单个地域下的定时任务数量和弹性伸缩使用情况有关,请前往配额中心查看配额值。

  1. 定时任务页,单击创建定时任务按钮,在弹出的创建定时任务对话框中,根据界面提示,完成定时任务的配置。配置项说明如下。

    1. 配置定时任务的基本信息

      配置项

      说明

      任务名称

      输入定时任务的名称。

      名称由2~64个字符组成,以大小写字母、数字或中文开头,可包含半角句号(.)、下划线(_)或短划线(-)。

      描述

      此选项为选填项,输入定时任务的描述。

      描述为2~200个字符,主要体现定时任务的目的、作用等信息,便于日后查看。

    2. 配置定时任务的执行时机

      配置项

      说明

      执行时间

      输入定时任务的触发时间。

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

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

      重要

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

      重试过期时间(秒)

      此选项为选填项,取值范围是0秒~1800秒(30分钟)。如果未能在执行时间触发伸缩动作,弹性伸缩将在重试过期时间内继续尝试执行定时任务。

      重复周期

      此选项为选填项,选择重复执行定时任务的周期。支持选择不设置、按天、按星期、按月或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执行任务

    3. 根据您的需求配置定时任务执行的动作(配置伸缩方式)。

      说明

      两种伸缩方式的区别:

      • 选择已有伸缩规则。支持设置增加/减少N台实例增加/减少N%的实例或者调整至N台实例

      • 伸缩组内实例数量设置。支持修改伸缩组的最大/最小实例数,如果伸缩组开启了期望实例数,也支持设置期望实例数

      选择已有伸缩规则(简单规则)

      配置项

      说明

      伸缩方式

      选择已有伸缩规则:选择该伸缩方式后,请同时选择伸缩组中已有的伸缩规则(简单规则)。

      伸缩规则(简单规则)

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

      伸缩组内实例数量设置(直接修改伸缩组实例数)

      配置项

      说明

      伸缩方式

      伸缩组内实例数量设置:选择该伸缩方式后,请同时输入最大实例数、最小实例数或期望实例数。

      最大实例数

      伸缩组实例数的上界。

      最小实例数

      伸缩组实例数的下界。

      期望实例数

      伸缩组会通过伸缩活动调整实际的实例数满足伸缩组实际实例数=期望实例数。

  2. 确认配置后单击确认按钮,完成定时任务的创建。

停用定时任务

在创建定时任务后,会默认启用该定时任务,如果您暂时不需要一个定时任务触发伸缩活动,您也可以停用该定时任务。只有定时任务处于启用状态时,您才可以进行停用操作。

具体操作

进入定时任务管理页后,在待启用定时任务的操作列下单击停用,并根据界面提示完成停用操作。

image

启用定时任务

如果您需要继续使用一个已停用的定时任务,可以重新启用定时任务,在指定的时间继续使用。只有定时任务处于停用状态时,您才可以进行启用操作。

具体操作

进入定时任务管理页后,在待启用定时任务的操作列下单击启用,并根据界面提示完成启用操作。

p843898

修改定时任务

如果当前定时任务不满足您的需求,您可以修改该定时任务。

具体操作

进入定时任务管理页后,在待修改定时任务的操作列下单击修改,根据界面提示完成定时任务的修改。

image

具体配置项说明,请参见创建定时任务

删除定时任务

如果当前定时任务不在使用,您可以删除该定时任务。

具体操作

进入定时任务管理页,在待删除的定时任务的操作列下单击删除,根据界面提示完成定时任务的删除。

image

相关文档