码道启辰:定时任务自由编排

案例介绍

本案例基于华为云码道(CodeArts)代码智能体,通过原创 SKILL快速构建一套多任务定时调度与管理工作流,结合华为云 FunctionGraph的事件驱动能力,实现定时任务的云端托管、统一管理和弹性执行。

一、概述

1.1 适用对象

  • 个人开发者
  • 高校学生
  • 企业

1.2 案例时间

本案例总时长预计45分钟。

1.3 案例流程

华为云码道(CodeArts)代码智能体:是华为云打造的智能编码产品,深度融合IDE、自主开发模式与代码大模型能力,支持项目级代码生成、代码续写、研发知识问答、单元测试用例生成等核心功能,可高效提升开发者研发效率,带来优质的智能化编码体验。

说明:

  1. 用户下载安装华为云码道CodeArts代码智能体IDE;
  2. 华为云账号登录授权华为云码道CodeArts代码智能体,通过提示词的输入生成4个SKILL和多任务定时调度系统;
  3. 使用华为云函数工作流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获取
  1. 登录华为云控制台
  2. 点击右上角用户名 → 「我的凭证」
  3. 点击「创建访问密钥」
  4. 下载并妥善保存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

功能特性

  1. 后端功能
  • 任务执行器: 接收任务配置,执行对应类型的任务
  • 调度管理器: 定时检查任务调度时间,触发到期任务
  • API处理函数: 处理来自Web前端的HTTP请求
  1. 前端功能
  • 任务管理: 添加、编辑、删除、启用/禁用任务
  • Cron编辑器: 可视化选择和编辑Cron表达式
  • 执行日志: 本地展示任务执行历史和日志
  • 数据统计: 展示任务执行统计信息
  • 配置导入导出: 支持配置的导入导出
  1. 支持的任务类型
  • 数据库备份: 定时备份数据库
  • 数据统计: 定时统计数据指标
  • 日志清理: 定时清理过期日志
  • 报告生成: 定时生成报告
  • 数据同步: 定时同步数据

四、工作流整体流程

language复制代码

复制代码
Web端配置任务 → 定时/API事件触发 → 任务调度函数执行 → 返回执行结果 → Web端展示日志

4.1 创建任务调度函数

  1. 登录华为云 FunctionGraph 控制台
  2. 点击 "创建函数",选择 "空白函数"
  3. 函数名称:task_executor,运行时:Python 3.10
  4. 代码输入方式:在线编辑,粘贴 backend/task_scheduler.py 代码
  5. 配置函数执行超时时间:300 秒
  6. 配置函数内存:128MB
  7. 点击 "创建函数"

4.2 配置定时触发器

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

4.3 配置 API 触发器(可选)

language复制代码

复制代码
#架构流程
前端 → API网关 → api-handler函数 → 后端处理
  1. 点击 "创建触发器",触发器类型:"API 网关 (APIG)"
  2. 选择 "新建 API"
  3. 请求方法:POST,认证方式:无认证(测试用,生产环境建议使用 IAM 认证)
  4. 开启 "跨域资源共享 (CORS)"
  5. 点击 "确定",记录 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 后端部署函数步骤

  1. 在 backend 目录执行 pip install -r requirements.txt 安装依赖
  2. 配置访问凭证到系统环境变量或者 backend\config.py ,建议优先配置到系统环境变量
  3. 在 backend 目录运行 python deploy.py

5.3 前端部署步骤

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

六、效果展示

6.1 任务管理界面

6.2 任务执行日志

6.3 FunctionGraph 控制台

七、拓展建议

7.1 接入华为云 APIG 实现Web功能联动

如果需要实现 Web 端与云端定时任务的实时交互(手动触发任务、动态修改配置、实时获取执行日志),可以按照以下流程接入华为云 API 网关服务:

  1. 开通华为云 API 网关服务:https://console.huaweicloud.com/apig/
  2. 在 FunctionGraph 函数详情页建议创建 API 网关服务专享服务 (APIG)(华为云API网关共享版已于2025年04月30日00:00(北京时间)在中国站正式退市) 触发器,选择 "无认证" 安全方式、POST 请求方法并开启跨域资源共享 (CORS)
  3. 修改对应函数,添加跨域响应头处理,支持解析 HTTP 请求体中的任务配置参数
  4. 修改 Web 管理界面,配置 API 调用地址,添加手动触发任务、实时拉取日志、云端同步任务配置功能

7.2 接入华为云 SMN 告警通知

如果需要实现任务失败时的邮件 / 短信告警通知,可以按照以下流程接入华为云 SMN 服务:

  1. 开通华为云 SMN 服务:https://console.huaweicloud.com/smn/
  2. 创建 SMN 主题,添加邮件 / 短信订阅者
  3. 创建task-alerter函数,通过码道智能体实现 SMN 消息发送功能
  4. 任务执行失败时,调用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 一键部署完整工作流

未来可以进一步扩展的功能:

  • 支持更多类型的触发器(如消息队列触发器、数据库触发器)
  • 支持任务依赖和工作流编排
  • 支持任务执行历史统计和可视化
  • 支持多租户和权限管理

至此,已完成全部开发,各位小伙伴快来华为开发者空间体验吧。

反馈改进建议

如您在案例实操过程中遇到问题或有改进建议,可以到 论坛帖评论区反馈即可,我们会及时响应处理,谢谢!

相关推荐
至此流年莫相忘1 小时前
WSL2 下 Docker Desktop 完全配置指南:从安装到极速体验
运维·docker·容器
梁辰兴1 小时前
计算机网络基础:对称加密密码体制
网络·计算机网络·计算机·对称加密·计算机网络基础·梁辰兴
Zhan8611241 小时前
WebSocket心跳与断线重连实战:芬兰赫尔辛基指数行情数据接口接入记录
网络·websocket·网络协议
悠悠121381 小时前
Linux 7.1 来了:新 NTFS 驱动、干掉 i486、FRED 默认开启,这次更新有点东西
linux·运维·服务器
by————组态1 小时前
Ricon组态组件生态 - 丰富的可视化组件库
运维·前端·物联网·组态·组态软件
格发许可优化管理系统1 小时前
Mentor许可证与其他软件许可证的深度比较
java·大数据·运维·c语言·c++·算法
睡不醒男孩0308231 小时前
CLup篇之达梦数据库管理
运维·服务器·数据库
BomanGe31 小时前
NSK直线导轨LH20HL替代升级指南
运维·服务器·数据库·经验分享·规格说明书
pingglala1 小时前
winscp连接linux失败解决方法
java·linux·服务器