
# 管理应用中的定时任务
通过创建定时任务，来让系统自动执行某脚本、服务编排完成业务功能。
#### 操作场景
创建一个定时任务"OfferingOffline"，用于实现从2021-11-25开始，每天零点自动将过期商品下架。其中，将过期商品下架的功能由"OfferingOffline"脚本实现。在创建定时任务之前，需要先开发实现定时任务功能的Script脚本，Script脚本的开发可参考[脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9159.html)。
除了在环境配置中创建定时任务，您还可以在应用开发时创建定时任务，详情请参见[定时任务](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9170.html)。两者的区别是在应用开发设计器中创建的定时任务，可在打包发布应用时，将定时任务一起打包发布出去。在环境配置中创建的定时任务，无法随应用发布出去。除此之外，在应用开发时创建的定时任务仅对当前应用有效，而在环境配置中创建的定时任务可在多个应用中使用。
#### 创建定时任务
1. 在华为云Astro轻应用服务控制台，单击"进入首页"，进入应用开发页面。
2. 在页面左上方单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001917373754.png)，选择"环境管理 \> 环境配置"，进入环境配置。
3. 在顶部主菜单中，选择"维护"。
4. 在左侧导航栏中，选择"全局元素 \> 定时任务"，单击"新建"。
5. 配置定时任务，单击"保存"。 
   保存后，该定时任务处于已启用状态。
   图1配置定时任务   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936098445.png "点击放大")
   表1定时任务参数说明 
   | 参数       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | 名称       | 定时任务名称。命名要求如下： - 长度不能超过64个字符。  - 必须以英文字母开头，只能包含英文字母、数字或单下划线，且不能以下划线结尾。                                                                                                                                                                                                                                                                                      |
   | 类型       | 选择定时任务执行的类型，支持脚本或服务编排。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 服务编排/脚本  | 选择定时任务执行的脚本或服务编排。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 输入参数     | 输入脚本或服务编排的输入参数，脚本或服务编排中有定义输入参数时，才会显示。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 任务首次执行时间 | 首次执行脚本或服务编排的时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 执行次数     | 定时任务执行次数。 - 仅执行一次：定时/即时执行，立即执行或者选择某个特定时间执行（只执行一次）。  - 按设置的频率执行多次：按计划执行，从选定的时间开始，按用户设置的时间间隔，周期性执行。  - 按照Cron表达式：按照设置的Cron表达式执行任务。   |
   | Cron表达式  | "执行次数"配置为"按照Cron表达式"时，需要设置定时任务的表达式。 Cron表达式是一种用于指定定时任务的时间表达式，常用来指定任务的执行时间、执行频率和执行间隔。Cron表达式由秒、分、时、日期、月份和星期六个域组成，每个域的取值请参见[表2](https://support.huaweicloud.com/usermanual-astrozero/astrozero_06_2060.html#astrozero_06_2060__table32858195316)。 Cron表达式示例如下： ``` 描述                           表达式 每天6点执行                     0 0 6 * * ? 每天的0点、6点、12点都执行一次   0 0 0,6,12 * * ? 每周六凌晨2点执行                0 0 2 ? * SAT 周一至周五的上午10:20触发        0 20 10 ? * MON-FRI ```                                      |
   | 执行周期     | "执行次数"配置为"按设置的频率执行多次"时，需要设置。 例如：1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 执行周期单位   | "执行次数"配置为"按设置的频率执行多次"时，需要设置执行任务时间间隔单位。 例如：天                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 描述       | 请根据实际需求，输入定时任务的描述信息。 取值范围：1\~255个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
      
   表2Cron表达式域取值 
   | 字段 | 允许的数值 | 允许的特殊字符          |
   |:---|:---|:---|
   | 秒  | 0\~59 | 不支持              |
   | 分  | 0\~59 | \* /             |
   | 小时 | 0\~23 | - \* /           |
   | 日期 | 1\~31 | - \* ? /         |
   | 月份 | 1\~12 | JAN-DEC - \* /   |
   | 星期 | 1\~7  | SUN-SAT - \* ? / |
      
   表3Cron表达式特殊字符的含义 
   | 字符 | 说明                                   | 示例                                                                                                                                                                                                           |
   |:---|:---|:---|
   | ,  | 表示分开的值。                              | 1,3,4,7,8。                                                                                                                                                                                                   |
   | \* | 表示匹配域的任意值。                           | 在分这个域使用\*，即表示每分钟都会触发事件。                                                                                                                                                                                      |
   | ?  | 表示匹配域的任意值，但只能用在日期和星期两个域，因为这两个域会相互影响。 | 要在每月的20号触发调度，不管每个月的20号是星期几，则只能使用如下写法：13 13 15 20 \* ?。 其中，因为日期域已经指定了20号，最后一位星期域只能用?，不能使用\*。如果最后一位使用\*，则表示不管星期几都会触发，与日期域的20号相斥，此时表达式不正确。 |
   | -  | 表示起止范围。                              | 在小时这个域使用8-10，表示从8时到10时每小时触发一次。                                                                                                                                                                               |
   | /  | 表示起始时间开始触发，然后每隔固定时间触发一次。             | 在小时这个域中使用，"\*/3"等同于"每3个小时"，即"0,3,6,9,12,15,18,21"小时触发。                                                                                                                                                       |
      
   
   
 
#### 使用定时任务
在华为云Astro轻应用环境配置中创建的定时任务，可在开发应用时直接导入使用。
1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，登录应用设计器。
2. 在左侧导航栏中，选择"流程"。
3. 单击定时任务后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001981492617.png)，进入导入定时任务页面。
4. 选中待导入的定时任务，单击"导入"。 
   导入成功后，在"流程 \> 定时任务"中，可查看到已导入的定时任务。
   图2导入定时任务   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001950376748.png "点击放大")
   
   
 
#### 禁用定时任务
创建定时任务成功后，其默认为启用状态，您可以进行禁用操作。
1. 在华为云Astro轻应用服务控制台，单击"进入首页"，进入应用开发页面。
2. 在页面左上方单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001917373754.png)，选择"环境管理 \> 环境配置"，进入环境配置。
3. 在顶部主菜单中，选择"维护"。
4. 在左侧导航栏中，选择"全局元素 \> 定时任务"。
5. 在需要禁用的定时任务后，单击"ON"，禁用定时任务。 
   您也可以进入定时任务详情页，单击"禁用"。
   
   
 
#### 查看任务执行历史
在"任务执行历史"中可以看到任务执行历史，包括起始和终止时间，以及执行状态。
1. 在华为云Astro轻应用服务控制台，单击"进入首页"，进入应用开发页面。
2. 在页面左上方单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001917373754.png)，选择"环境管理 \> 环境配置"，进入环境配置。
3. 在顶部主菜单中，选择"维护"。
4. 在左侧导航栏中，选择"全局元素 \> 定时任务"，单击"任务执行历史"。
5. 设置"开始时间"和"结束时间"或任务名称，单击"查找"，查找某段时间中任务执行历史。
 
