案例介绍
本案例基于华为云码道(CodeArts)代码智能体,通过原创 SKILL快速构建一套多任务定时调度与管理工作流,结合华为云 FunctionGraph的事件驱动能力,实现定时任务的云端托管、统一管理和弹性执行。
一、概述
1.1 适用对象
- 个人开发者
- 高校学生
- 企业
1.2 案例时间
本案例总时长预计45分钟。
1.3 案例流程
华为云码道(CodeArts)代码智能体:是华为云打造的智能编码产品,深度融合IDE、自主开发模式与代码大模型能力,支持项目级代码生成、代码续写、研发知识问答、单元测试用例生成等核心功能,可高效提升开发者研发效率,带来优质的智能化编码体验。

说明:
- 用户下载安装华为云码道CodeArts代码智能体IDE;
- 华为云账号登录授权华为云码道CodeArts代码智能体,通过提示词的输入生成4个SKILL和多任务定时调度系统;
- 使用华为云函数工作流FunctionGraph配置定时触发器与API触发器并访问管理页面。
1.4 资源总览
本案例预计花费0到+∞元。体验完成后请及时释放资源,避免产生多余的费用。
| 资源名称 | 规格 | 单价(元) |
|---|---|---|
| 华为云码道(CodeArts)代码智能体 | IDE版 | 免费 |
| 华为云 FunctionGraph【必需】 | 系统标配 | 每月前100万次调用免费 |
| 华为云 API 网关服务(APIG)【可选】 | 按需计费 | 最低4.75/小时 |
二、安装配置华为云码道
2.1 Windows版AI IDE华为云码道安装部署
参考案例《Windows版AI IDE华为云码道(CodeArts)代码智能体安装部署》完成Windows版AI IDE华为云码道(CodeArts)代码智能体安装部署。

2.2 领取华为云MaaS平台大模型Tokens福利(任选其一)
方式一: 登录华为开发者空间,参考案例《华为开发者空间 - ModelArts Studio大模型通用代金券领取使用指导》中的"二、 开通MaaS平台大模型"章节内容领取代金券,获取到模型的API地址、模型名称和API Key。
方式二: 登录华为开发者空间,参考案例《华为云MaaS平台大模型Tokens领取使用指导》中的"二、 领取MaaS平台大模型Tokens"章节内容,领取MaaS平台DeepSeek V3系列大模型Tokens代金券,购买ModelArts Studio DeepSeek Tokens套餐包,开通模型服务,最后获取到模型的API地址、模型名称和API Key。


注意:记录API Key、API地址以及模型名称留作后面步骤使用。
2.3 注册华为云账号,获取AK/SK信息
2.3.1 账号注册
2.3.2 AK/SK获取
- 登录华为云控制台
- 点击右上角用户名 → 「我的凭证」
- 点击「创建访问密钥」
- 下载并妥善保存CSV文件(SK仅显示一次)

作用:华为云账号登录码道,用于应用开发;AK/SK用于环境配置,部署应用到华为云服务
2.4 开通华为云 FunctionGraph 服务
打开函数工作流 FunctionGraph,可直接参考新手入门操作。

2.5 本地安装 Node.js 16 + 和 npm 8+(用于前端开发)
参考案例《SKILL快速构建你的Java、Python和Node.js开发环境》一键配置。
三、多任务定时调度系统
3.1 创建SKILL并部署到项目技能中
使用码道开发4个FunctionGraph相关的SKILL,也可通过git下载源码到本地,本案例共设计 4 个原创 SKILL,SKILL及项目代码全部上传至 GitCode项目中。
核心 SKILL 设计与实现:

将生成的SKILL技能部署到项目技能中进行使用:

使用技能开发多任务定时调度与管理工作流:

3.2 部署项目代码
项目级skill项目结构说明:【根据以上操作配置】
language复制代码
.codeartsdoer/skills/
├── function_creator/ # 函数创建实现SKILL
│ ├── SKILL.md
├── trigger_creator/ # 触发器配置SKILL
│ ├── SKILL.md
├── web_generator/ # Web界面生成实现SKILL
│ ├── SKILL.md
├── workflow_deployer/ # 工作流部署实现SKILL
│ ├── SKILL.md
生成的SKILL及py项目结构说明:
language复制代码
FunctionGraph_SKILL2/
├── function_creator/ # SKILL 1: 函数创建
│ ├── SKILL.md # SKILL说明文档
│ └── create_function.py # 函数创建实现
├── trigger_creator/ # SKILL 2: 触发器配置
│ ├── SKILL.md # SKILL说明文档
│ └── create_trigger.py # 触发器配置实现
├── web_generator/ # SKILL 3: Web界面生成
│ ├── SKILL.md # SKILL说明文档
│ └── generate_web.py # Web界面生成实现
├── workflow_deployer/ # SKILL 4: 工作流一键部署
│ ├── SKILL.md # SKILL说明文档
│ └── deploy_workflow.py # 工作流部署实现
└── README.md # 项目说明
多任务定时调度系统项目结构说明:
language复制代码
functiongraph-scheduler/
├── backend/ # 后端代码
│ ├── config.py # 华为云配置
│ ├── task_executor.py # 任务执行器
│ ├── scheduler_manager.py # 调度管理器
│ ├── api_handler.py # API处理函数
│ ├── deploy.py # 部署脚本
│ ├── deployment_config.json # 部署配置
│ ├── requirements.txt # Python依赖
│ └── tests/ # 测试用例
│ └── test_tasks.py
├── frontend/ # 前端代码
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── components/ # UI组件
│ │ ├── stores/ # 状态管理
│ │ ├── utils/ # 工具函数
│ │ ├── types/ # 类型定义
│ │ └── api/ # API接口
│ ├── package.json
│ └── vite.config.ts
└── README.md
功能特性
- 后端功能
- 任务执行器: 接收任务配置,执行对应类型的任务
- 调度管理器: 定时检查任务调度时间,触发到期任务
- API处理函数: 处理来自Web前端的HTTP请求
- 前端功能
- 任务管理: 添加、编辑、删除、启用/禁用任务
- Cron编辑器: 可视化选择和编辑Cron表达式
- 执行日志: 本地展示任务执行历史和日志
- 数据统计: 展示任务执行统计信息
- 配置导入导出: 支持配置的导入导出
- 支持的任务类型
- 数据库备份: 定时备份数据库
- 数据统计: 定时统计数据指标
- 日志清理: 定时清理过期日志
- 报告生成: 定时生成报告
- 数据同步: 定时同步数据
四、工作流整体流程
language复制代码
Web端配置任务 → 定时/API事件触发 → 任务调度函数执行 → 返回执行结果 → Web端展示日志
4.1 创建任务调度函数
- 登录华为云 FunctionGraph 控制台
- 点击 "创建函数",选择 "空白函数"
- 函数名称:task_executor,运行时:Python 3.10
- 代码输入方式:在线编辑,粘贴 backend/task_scheduler.py 代码
- 配置函数执行超时时间:300 秒
- 配置函数内存:128MB
- 点击 "创建函数"

4.2 配置定时触发器
- 在函数详情页,点击 "触发器" 标签
- 点击 "创建触发器",触发器类型:"定时触发器"
- 触发器名称:every-minute-trigger
- Cron 表达式:0 */5 * * * ?(每五分钟执行一次)
- 点击 "确定"

4.3 配置 API 触发器(可选)
language复制代码
#架构流程
前端 → API网关 → api-handler函数 → 后端处理
- 点击 "创建触发器",触发器类型:"API 网关 (APIG)"
- 选择 "新建 API"
- 请求方法:POST,认证方式:无认证(测试用,生产环境建议使用 IAM 认证)
- 开启 "跨域资源共享 (CORS)"
- 点击 "确定",记录 API 调用地址
注意!:
Web 端无法手动触发任务
Web 端无法实时获取任务执行结果和日志
Web 端无法动态修改任务配置(只能在代码或控制台修改)


注意!:
- 生产环境中建议配置,这样即可在我们生成的Web进行触发任务,测试可不配置,但是Web端实用功能会受影响
- 目前后端已通过华为云SDK及凭证配置,后期拓展可通过后端转发处理,也可达到同样的效果
4.4 Web 端任务配置示例
在 Web 管理界面中添加以下测试任务:
language复制代码
{
"tasks": [
{
"id": "db-backup",
"name": "数据库每日备份",
"cron": "0 0 2 * * ?",
"command": "python backup_db.py",
"enabled": true,
"lastExecutionTime": "",
"nextExecutionTime": "2026-04-14 02:00:00",
"status": "待执行"
},
{
"id": "data-statistics",
"name": "每小时数据统计",
"cron": "0 0 * * * ?",
"command": "python statistics.py",
"enabled": true,
"lastExecutionTime": "",
"nextExecutionTime": "2026-04-13 15:00:00",
"status": "待执行"
},
{
"id": "log-cleanup",
"name": "每周日志清理",
"cron": "0 0 0 ? * SUN",
"command": "python cleanup_logs.py",
"enabled": true,
"lastExecutionTime": "",
"nextExecutionTime": "2026-04-20 00:00:00",
"status": "待执行"
}
]
}
五、Web 管理界面实现
5.1 界面功能
- 任务管理:创建、编辑、删除、启用 / 禁用定时任务
- 任务监控:查看任务的执行状态、上次执行时间、下次执行时间
- 日志查看:查看任务的执行日志和错误信息
- 手动触发:支持手动立即执行指定任务
- 本地存储:所有任务配置和执行日志存储在浏览器 localStorage 中
5.2 后端部署函数步骤
- 在 backend 目录执行
pip install -r requirements.txt安装依赖 - 配置访问凭证到系统环境变量或者
backend\config.py,建议优先配置到系统环境变量 - 在 backend 目录运行
python deploy.py



5.3 前端部署步骤
- 在 frontend 目录执行
npm install安装依赖 - 修改
src/api/task.ts文件,配置 API 网关地址 - 执行
npm run dev本地运行测试 - 执行
npm run build打包前端代码 - 将 dist 目录下的文件部署到任意静态网站托管服务或本地运行


六、效果展示
6.1 任务管理界面



6.2 任务执行日志


6.3 FunctionGraph 控制台






七、拓展建议
7.1 接入华为云 APIG 实现Web功能联动
如果需要实现 Web 端与云端定时任务的实时交互(手动触发任务、动态修改配置、实时获取执行日志),可以按照以下流程接入华为云 API 网关服务:
- 开通华为云 API 网关服务:https://console.huaweicloud.com/apig/
- 在 FunctionGraph 函数详情页建议创建 API 网关服务专享服务 (APIG)(华为云API网关共享版已于2025年04月30日00:00(北京时间)在中国站正式退市) 触发器,选择 "无认证" 安全方式、POST 请求方法并开启跨域资源共享 (CORS)
- 修改对应函数,添加跨域响应头处理,支持解析 HTTP 请求体中的任务配置参数
- 修改 Web 管理界面,配置 API 调用地址,添加手动触发任务、实时拉取日志、云端同步任务配置功能
7.2 接入华为云 SMN 告警通知
如果需要实现任务失败时的邮件 / 短信告警通知,可以按照以下流程接入华为云 SMN 服务:
- 开通华为云 SMN 服务:https://console.huaweicloud.com/smn/
- 创建 SMN 主题,添加邮件 / 短信订阅者
- 创建
task-alerter函数,通过码道智能体实现 SMN 消息发送功能 - 任务执行失败时,调用
task-alerter函数发送告警通知

7.3 接入华为云 OBS 持久化存储
如果需要持久化存储任务配置和执行日志,可以按照以下流程接入华为云 OBS 服务:
开通华为云 OBS 服务:https://console.huaweicloud.com/obs/
创建 OBS 存储桶,配置访问权限
修改task_executor,通过码道智能体将数据写入 OBS
通过码道智能体修改 Web 管理界面,从 OBS 读取任务配置和执行日志
7.4 总结与展望
本案例基于华为云码道代码智能体和 SKILL 技术,快速构建了一套完整的多任务定时调度与管理工作流,充分发挥了 FunctionGraph 事件驱动、按需供给的优势。
相比传统的定时任务解决方案,本方案具有以下优势:
- 高可用:云端托管,无单点故障风险
- 易管理:统一的 Web 管理界面,集中监控和管理
- 低成本:按需付费【每月前100万次调用免费】,只有任务执行时才产生费用
- 易扩展:支持添加任意数量的任务和触发器
- 快速部署:通过 SKILL 一键部署完整工作流
未来可以进一步扩展的功能:
- 支持更多类型的触发器(如消息队列触发器、数据库触发器)
- 支持任务依赖和工作流编排
- 支持任务执行历史统计和可视化
- 支持多租户和权限管理
至此,已完成全部开发,各位小伙伴快来华为开发者空间体验吧。
反馈改进建议
如您在案例实操过程中遇到问题或有改进建议,可以到 论坛帖评论区反馈即可,我们会及时响应处理,谢谢!