
# 定时任务
通过创建定时任务，让系统按照设定时间或频率自动执行预设操作并输出执行结果，全程无需人工干预，助您轻松解放双手。
#### 约束与限制
表1约束与限制 
| 限制类别     | 具体限制                                                                                             |
|:---|:---|
| 并行任务数量限制 | 单个项目最多支持同时启用3个定时任务。                                                                              |
| 存储方式     | 本地存储。 存储在"%USERPROFILE%/.codeartsdoer/cli-data/cron"目录下。 |
   
#### 定时任务命令
表2定时任务命令 
| 开发环境 | 命令                                                                                                    | 功能说明                       |
|:---|:---|:---|
| TUI  | /schedule 自然语言提示词                                           | 您可以通过命令或自然语言描述两种方式来创建定时任务。 |
| CLI  | codearts run --command schedule "*提示词*" codearts run "*提示词*" | 您可以通过命令或自然语言描述两种方式来创建定时任务。 |
   
#### 定时任务配置文件
在码道CLI中运行定时任务依赖以下文件，其中的数据均由系统自动生成。
表3定时任务依赖文件 
| 文件类型         | 文件路径                                                                                                                                                                                              | 说明                                                                                      |
|:---|:---|:---|
| 任务数据文件（配置文件） | \~/.codeartsdoer/cli-data/cron/scheduled_tasks.json "\~"表示当前用户的主目录，Windows下等同于"C:\\Users\\用户名\\"，macOS下等同于"/Users/用户名/"，Linux下等同于"/home/用户名/"            | 存储所有定时任务的定义，包括间隔、提示词、状态等。数据文件包含的具体字段，如[表4]。 |
| 执行日志文件（执行记录） | \~/.codeartsdoer/cli-data/cron/cron_log/task_*{TASK_ID}*.json "\~"表示当前用户的主目录，Windows下等同于"C:\\Users\\用户名\\"，macOS下等同于"/Users/用户名/"，Linux下等同于"/home/用户名/" | 记录每个任务的每次执行结果，包括状态、耗时、结果摘要。                                                             |
   
 表4数据文件字段说明 
| 字段            | 取值范围 / 格式                                                                                                                                                                                                                                                                                                                                                                                                                                               | 说明                         | 示例                                        |
|:---|:---|:---|:---|
| id            | 8字符随机ID（系统自动生成）                                                                                                                                                                                                                                                                                                                                                                                                                                         | 任务的唯一标识。                   | 10e366d0                                  |
| cron          | 5段Cron表达式：minute hour day month weekday 支持：\*、\*/N、N、N-M、N,M,O 字段范围：分钟（0--59）、小时（0--23）、日（1--31）、月（1--12）、星期（0-6，0代表周日）                                                                                                                                                                                                                                           | 执行时间计划（本地时间），用于定时触发任务。     | \*/5 \* \* \* \*（每5分钟）、0 9 \* \* \*（每天9点） |
| prompt        | 任意文本                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 任务触发时执行的AI提示词（指令内容）。       | 检查本地C盘剩余存储空间                              |
| projectPath   | 绝对路径                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 所属项目路径（系统自动绑定当前项目上下文）。     | D:\\tmp\\test_hc_cli                      |
| status        | - active：运行中  - paused：暂停  - expired：已过期  - deleted：已删除   | 任务当前状态（系统自动管理，初始值为active）。 | active                                    |
| recurring     | - true：循环任务，按cron间隔反复执行  - false：单次任务，执行一次后自动结束                                                                                                                                                                                     | 是否启用循环执行机制。                | true                                      |
| durable       | - true：持久化定时任务。持久化任务跨重启保留，退出后下次启动会自动恢复并继续执行。只有当用户明确要求"跨重启保留"、"持续每天运行"、"永久保留"时，才会创建持久化任务。  - false：会话级定时任务。默认创建的任务为会话级，退出程序后任务不再保留，下次启动不会恢复。适合临时提醒、短期轮询等场景。                                                                             | 是否为持久化任务，默认为false。         | false                                     |
| createdAt     | Unix时间戳（毫秒）                                                                                                                                                                                                                                                                                                                                                                                                                                             | 任务创建时间，由系统自动生成。            | 1783996637621                             |
| humanSchedule | 中文描述                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 人类可读的调度描述，系统根据cron表达式自动生成。 | 每分钟、每天09:00、每5分钟                          |
| sessionID     | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 会话标识符。定时任务会新建会话，并随任务刷新而更新。 | ses_0a16ceba1ffeXQHnpNW0jh20J8            |
| agentID       | 内置Agent名称                                                                                                                                                                                                                                                                                                                                                                                                                                               | 执行任务所使用的Agent，由系统自动获取。     | build、code                                |
| modelID       | 已配置的模型ID                                                                                                                                                                                                                                                                                                                                                                                                                                                | 执行任务使用的模型，由系统自动获取。         | deepseek-v3.2                             |
| providerID    | 已配置的提供商ID                                                                                                                                                                                                                                                                                                                                                                                                                                               | 执行任务使用的模型提供商，由系统自动获取。      | huaweicloud-maas                          |
| isCustom      | - true：自定义Agent  - false：内置Agent                                                                                                                                                                                                     | 是否使用自定义Agent，由系统自动判断。      | false                                     |
| sessionType   | 内核会话（kernel）、其他会话类型                                                                                                                                                                                                                                                                                                                                                                                                                                     | 会话类型，由系统自动获取。              | kernel                                    |
| category      | - code：代码类  - office：办公类                                                                                                                                                                                                           | 任务分类，由系统自动获取。              | code                                      |
   
 #### 在TUI中创建定时任务
在TUI开发环境中，您可以使用命令或自然语言两种方式来创建定时任务。需要注意的是，通过命令创建的定时任务会立即执行，而使用自然语言描述创建的定时任务则不会立即执行。
- [使用/schedule命令创建定时任务]
- [使用自然语言创建定时任务]
**命令语法**：
```
/schedule [执行频率] <提示词>
```
表5/schedule命令参数说明 
| 参数   | 描述                                                                                                                        |
|:---|:---|
| 执行频率 | 可选参数，设置定时任务每隔多久执行一次。省略时默认每隔10分钟执行一次。 格式：数字 + 单位字母。单位字母包含s（秒）、m（分钟）、h（小时）和d（天）四种。 |
| 提示词  | 必选参数，您希望AI执行的指令。                                                                                                          |
   
![](https://support.huaweicloud.com/usermanual-cli/public_sys-resources/caution_3.0-zh-cn.png)
首次提交定时任务指令后，AI将立即执行一次指定的提示词，并随后设置一个定时任务持续运行。后续的定时任务将在一个独立的会话（session）中生成，您可以通过"/sessions"命令查看所有会话的情况。例如，下发一个"/schedule 5m 检查部署状态"指令，AI会立即检查一次，然后每5分钟自动检查部署状态。
**使用示例（以Windows操作系统为例）**：
1. 进入TUI开发环境。 
   1. 打开目标项目的根目录。
   
   2. 鼠标右键单击空白处，选择"在终端中打开"。
   
   3. 在终端中输入"codearts"并回车，即可进入TUI开发环境。
   
   
   
   
2. 通过"/schedule"命令，创建定时任务。 
   1. 在TUI对话框中，输入"/"，选择"/schedule"。
   
   2. 在"/schedule"命令后，输入如下指令，并按Enter键。
      ```
      1m 按照后缀递增创建一个txt文件，并写入当前系统日期与时间
      ```
      
   
   3. AI会创建定时任务并立即执行一次定时任务，同时生成[表6]中两个文件。
      图1创建会话级定时任务   
      ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002645101648.png "点击放大")
       表6生成文件 
      | 文件名                   | 存储路径                                                | 说明           |
      |:---|:---|:---|
      | scheduled_tasks.json  | %USERPROFILE%/.codeartsdoer/cli-data/cron/          | 记录当前任务信息。    |
      | task_*{TASK_ID}*.json | %USERPROFILE%/.codeartsdoer/cli-data/cron/cron_log/ | 记录当前任务的执行记录。 |
         
      
   
   4. 通过"/sessions"命令，查看定时任务新建的会话。
      图2查看定时任务新建的会话   
      ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002675023573.png "点击放大") 
   
   
   
   
 
除了通过"/schedule"命令创建定时任务，还支持通过自然语言描述来创建定时任务。**通过自然语言创建的定时任务，不会立即执行**。
1. 进入TUI开发环境。 
   1. 打开目标项目的根目录。
   
   2. 鼠标右键单击空白处，选择"在终端中打开"。
   
   3. 在终端中输入"codearts"并回车，即可进入TUI开发环境。
   
   
   
   
2. 在TUI对话框中，输入您希望AI执行的操作，并按Enter键。 
   - **通过自然语言创建循环任务示例**
     表7通过自然语言创建循环任务 
     | 提示词                | AI会做的事            |
     |:---|:---|
     | 每30分钟检查一下生产环境的错误日志 | 创建循环任务，每30分钟执行一次  |
     | 每天早上9点运行单元测试       | 创建循环任务，每天9:00执行一次 |
     | 每小时扫描一次安全漏洞        | 创建循环任务，每1小时执行一次   |
        
     
   
   - **通过自然语言创建单次任务** **示例**
     表8通过自然语言创建单次任务 
     | 提示词                   | AI会做的事                 |
     |:---|:---|
     | 明天上午9点提醒我review PR#42 | 创建单次任务，明天9:00执行一次后自动结束 |
     | 3分钟后提醒我确认数据库迁移结果      | 创建单次任务，3分钟后执行一次        |
     | 下周一10点提醒我提交周报         | 创建单次任务，下周一10:00执行一次    |
        
     
   
   
   
   
 
 #### 在CLI中创建定时任务
在CLI开发环境中，您可以使用命令或自然语言两种方式来创建定时任务。需要注意的是，通过命令创建的定时任务会立即执行，而使用自然语言描述创建的定时任务则不会立即执行。
![](https://support.huaweicloud.com/usermanual-cli/public_sys-resources/caution_3.0-zh-cn.png)
CLI对话是一次性的，因此新建的定时任务仅会写入到scheduled_tasks.json配置文件，需有TUI或其他CLI进程运行中时才会执行。为保证任务正常生效，请勿关闭当前CLI窗口，保持其持续运行。
- [使用命令创建定时任务]
- [使用自然语言创建定时任务]
**命令语法**：
```
codearts run --command schedule "提示词"
```
表9命令参数说明 
| 参数  | 描述               |
|:---|:---|
| 提示词 | 必选参数，您希望AI执行的操作。 |
   
**使用示例**：
1. 在CLI开发环境中，输入创建定时任务命令并回车。 
   例如，创建一个每两分钟提醒我进行CLI测试的定时任务，您可使用如下提示词。**如果指令中没有明确时间，则创建默认每10分钟执行一次的定时任务** （如codearts run --command schedule "列出所有定时任务"）。
   ```
   codearts run --command schedule "2m 提醒我进行CLI测试"
   ```
   
   
2. AI会根据您输入的指令，创建定时任务并立即执行一次定时任务。 
   图3创建并执行定时任务   
   ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002645044760.png "点击放大")
   
   
 
1. 在CLI开发环境中，输入创建定时任务命令并回车。 
   ```
   codearts run "提示词"
   ```
   例如，创建一个每分钟提醒我写CLI周报的定时任务，您可使用如下提示词。
   ```
   codearts run "每分钟提醒我写CLI的周报"
   ```
   
   
2. AI会根据您输入的指令，创建定时任务。 
   图4创建定时任务   
   ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002675243849.png "点击放大")
   
   
 
#### 管理定时任务
当前仅支持通过自然语言描述来管理已创建的定时任务。
表10管理定时任务 
| 输入自然语言提示词                                                                                                                                                                                                                                                                       | 执行结果                                      |
|:---|:---|
| - TUI：列出所有的定时任务  - CLI：codearts run "列出所有的定时任务"      | 展示全部定时任务列表。                               |
| - TUI：查看暂停的定时任务  - CLI：codearts run "列出暂停的定时任务"      | 仅展示处于暂停状态的任务。                             |
| - TUI：查看*任务ID*任务详情  - CLI：codearts run "查看*任务ID*任务详情"       | 展示该任务的详情，包括执行历史和下次运行时间                    |
| - TUI：暂停*任务ID*  - CLI：codearts run "暂停*任务ID*"          | 任务停止执行，暂停不会丢失任何配置，恢复后任务继续按原间隔执行。          |
| - TUI：恢复*任务ID*  - CLI：codearts run "恢复*任务ID*"                | 将暂停的任务重新激活，按原计划继续运行。                      |
| - TUI：删除*任务ID*  - CLI：codearts run "删除*任务ID*"                | 永久移除该任务，不可恢复。                             |
| - TUI：立即执行定时任务*任务ID*  - CLI：codearts run "立即执行定时任务*任务ID*"   | 马上触发一次执行，不影响原有的定时计划。例如，可以立即执行处于暂停状态的定时任务。 |
   
