
# 创建华为云Astro轻应用定时任务
#### 什么是定时任务
业务系统中通常存在很多场景不需要人工参与，可以在系统后台定期完成的任务。例如，系统中存在一个定时任务，在每天凌晨3点，定时将到期的商品进行下架处理。系统提供自定义定时任务，您可以根据业务需求进行在线创建、查看、删除定时任务并监控任务执行的结果。
除了在应用开发时创建定时任务，您还可以在环境配置中创建定时任务，详情请参见[管理应用中的定时任务](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9900.html)。两者的区别是在应用设计器中创建的定时任务，可在打包发布应用时，将定时任务一起打包发布出去。在环境配置中创建的定时任务，无法随应用发布出去。
#### 创建定时任务
1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，登录应用设计器。
2. 在左侧导航栏中，选择"流程"。
3. （可选）单击定时任务后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001914206714.png)，为定时任务添加目录。
   
   定时任务默认存放在根目录下，在创建定时任务前，您需要提前创建定时任务存放的目录，也可以在定时任务创建后将其拖拽到指定目录。
   
   
4. 将鼠标放在已创建的定时任务目录上，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001914366638.png)，进入新建定时任务页面。
   
   如果未创建定时任务目录，请直接单击定时任务后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001946085789.png)，进入新建定时任务页面。
   
   
5. 配置定时任务，单击"保存"。 
   例如，创建一个定时任务"OfferingOffline"，用于实现从2021-11-25开始，每天零点自动将过期商品下架。其中，将过期商品下架的功能由"OfferingOffline"脚本实现。在创建定时任务之前，需要先开发实现定时任务功能的脚本并确保脚本已启用。如何开发脚本，请参见[脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9159.html)。
   图1配置定时任务   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894298688.png "点击放大")
   表1定时任务参数说明 
   | 参数       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 示例                  |
   |:---|:---|:---|
   | 名称       | 输入定时任务的名称。命名要求如下： - 长度不能超过64个字符，包括前缀命名空间的长度。 名称前的内容为命名空间，在华为云Astro轻应用中为了避免不同租户间数据的重名，租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间，创建后不支持修改。   - 必须以英文字母开头，由英文字母、数字或下划线组成，且不能以下划线结尾。                                                                                                                                   | OfferingOffline     |
   | 类型       | 选择定时任务执行的类型，支持脚本或服务编排。 - 脚本：使用脚本，开发实现定时任务的功能。  - 服务编排：使用服务编排，开发实现定时任务的功能。                                                                                                                                                                                                                                                                                   | 脚本                  |
   | 服务编排/脚本  | 选择定时任务执行的脚本或服务编排，请确保脚本和服务编排已启用，否则在此处无法选择到。如何启用脚本和服务编排，请参见[创建空白华为云Astro轻应用脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9162.html)和[创建空白华为云Astro轻应用服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9131.html)。                                                                                                                                                                                                                                                                                                                            | OfferingOffline     |
   | 任务首次执行时间 | 设置定时任务首次执行的时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 2021-11-25 00:00:00 |
   | 执行次数     | 设置定时任务执行的次数。 - 仅执行一次：定时/即时执行，立即执行或者选择某个特定时间执行（只执行一次）。  - 按设置的频率执行多次：按计划执行，从选定的时间开始，按用户设置的时间间隔，周期性执行。  - 按照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"小时触发。                                                                                                                                                       |
      
   
   
 
