
1. 引言WorkBuddy 是一款面向团队协作与自动化的工作流管理工具它通过「任务」这一核心概念把零散的工作项、审批流程和自动化动作串联起来。无论是日常待办、跨部门协作还是定时触发的自动化任务WorkBuddy 都提供了统一且可扩展的创建与管理方式。本文将从 WorkBuddy 任务模型的基本概念出发逐步讲解如何通过界面、命令行以及 API 三种方式创建任务并给出丰富的代码实例帮助你在实际项目中快速落地。2. 任务模型与核心概念在动手创建任务之前先理解 WorkBuddy 的任务模型。一个任务由以下核心字段组成任务名称name任务的唯一标识建议使用语义化命名例如「订单超时自动提醒」。任务类型type决定任务的执行方式常见类型包括一次性任务、定时任务和事件触发任务。执行动作action任务实际执行的操作例如发送通知、调用接口、更新数据库记录等。调度规则schedule对于定时任务定义触发的时间表达式或周期。优先级priority控制任务在队列中的执行顺序取值从 0最低到 10最高。超时时间timeout任务允许运行的最长秒数超过后将被强制终止。重试策略retry任务失败后的重试次数与间隔。下面是一个任务对象的 JSON 结构示例它清晰地展示了各字段的层级关系{ name: order_timeout_alert, type: scheduled, action: { kind: webhook, url: https://api.example.com/notify, method: POST, headers: { Authorization: Bearer ${TOKEN} }, payload: { message: 订单超时请及时处理 } }, schedule: { cron: 0 */5 * * * ? }, priority: 5, timeout: 60, retry: { max_attempts: 3, backoff_seconds: 10 } }3. 通过 Web 控制台创建任务对于不熟悉编程的团队成员Web 控制台是最直观的创建方式。登录 WorkBuddy 后进入「任务管理」页面点击右上角的「新建任务」按钮即可打开创建向导。创建向导分为四个步骤基本信息填写任务名称、描述并选择任务类型。配置动作选择动作类型Webhook、脚本、消息通知等并填写对应参数。设置调度对于定时任务选择 Cron 表达式或使用可视化周期选择器。确认并发布检查所有配置点击「发布」后任务立即生效。控制台创建的任务会自动生成对应的 API 配置你可以在任务详情页的「导出配置」中查看其 JSON 表示方便后续迁移到代码中管理。4. 使用命令行工具创建任务WorkBuddy 提供了官方命令行工具wb适合在开发环境或 CI/CD 流水线中快速创建任务。首先安装 CLI 工具npm install -g workbuddy/cli安装完成后使用wb login进行身份认证wb login --api-key YOUR_API_KEY接下来通过wb task create命令创建任务。以下示例创建一个每 10 分钟执行一次的定时任务wb task create \ --name health_check \ --type scheduled \ --action {kind:http,url:https://api.example.com/ping,method:GET} \ --schedule {cron:0 */10 * * * ?} \ --priority 3 \ --timeout 30命令执行成功后CLI 会返回新任务的任务 ID 和状态Task created successfully: ID: task_8f3a2b9c Name: health_check Status: active如果需要批量创建任务可以将多个任务定义写入一个 YAML 文件然后使用wb task apply一次性导入tasks: - name: daily_report type: scheduled action: kind: script language: python code: | print(Generating daily report...) schedule: cron: 0 0 9 * * ? - name: data_sync type: event action: kind: webhook url: https://api.example.com/sync method: POST event: source: database.change filter: table orderswb task apply --file tasks.yaml5. 使用 REST API 创建任务对于需要深度集成到业务系统中的场景WorkBuddy 提供了完整的 REST API。创建任务的接口为POST /api/v1/tasks请求体为任务对象的 JSON 表示。下面是一个使用 cURL 创建任务的示例curl -X POST https://api.workbuddy.io/api/v1/tasks \ -H Authorization: Bearer YOUR_API_TOKEN \ -H Content-Type: application/json \ -d { name: invoice_reminder, type: scheduled, action: { kind: email, to: financeexample.com, subject: 发票待处理提醒, body: 本月尚有 3 张发票未处理请及时跟进。 }, schedule: { cron: 0 0 18 * * ? }, priority: 7 }接口返回 201 状态码响应体包含创建后的完整任务对象{ id: task_9c1d4e7f, name: invoice_reminder, type: scheduled, status: active, created_at: 2026-08-29T08:30:00Z, schedule: { cron: 0 0 18 * * ? } }6. 使用 SDK 创建任务Python 示例WorkBuddy 官方提供了 Python SDK封装了底层 API 调用让任务创建更加简洁。首先安装 SDKpip install workbuddy-sdk以下代码演示了如何使用 Python SDK 创建一个定时任务from workbuddy import WorkBuddyClient, Task, Action, Schedule 初始化客户端 client WorkBuddyClient(api_keyYOUR_API_KEY) 构建任务对象 task Task( nameweekly_summary, typescheduled, actionAction( kindwebhook, urlhttps://api.example.com/summary, methodPOST, payload{channel: #weekly} ), scheduleSchedule(cron0 0 10 ? * MON), priority4, timeout120 ) 创建任务 created client.tasks.create(task) print(f任务创建成功ID: {created.id})SDK 还支持异步创建适合在异步框架如 FastAPI中使用import asyncio from workbuddy import AsyncWorkBuddyClient async def create_task_async(): client AsyncWorkBuddyClient(api_keyYOUR_API_KEY) task Task( nameasync_cleanup, typescheduled, actionAction(kindscript, languagepython, codeprint(cleaning...)), scheduleSchedule(cron0 0 3 * * ?) ) created await client.tasks.create(task) print(f异步任务创建成功ID: {created.id}) asyncio.run(create_task_async())7. 使用 SDK 创建任务Java 示例对于 Java 技术栈的团队WorkBuddy 同样提供了官方 Java SDK。在pom.xml中添加依赖dependency groupIdio.workbuddy/groupId artifactIdworkbuddy-sdk/artifactId version1.4.2/version /dependency下面是一个使用 Java SDK 创建任务的完整示例import io.workbuddy.WorkBuddyClient; import io.workbuddy.model.Task; import io.workbuddy.model.Action; import io.workbuddy.model.Schedule; public class CreateTaskExample { public static void main(String[] args) { // 初始化客户端 WorkBuddyClient client new WorkBuddyClient.Builder() .apiKey(YOUR_API_KEY) .build(); // 构建任务对象 Task task Task.builder() .name(order_sync) .type(scheduled) .action(Action.builder() .kind(http) .url(https://api.example.com/orders/sync) .method(POST) .build()) .schedule(Schedule.builder() .cron(0 0 */2 * * ?) .build()) .priority(6) .timeout(90) .build(); // 创建任务 Task created client.tasks().create(task); System.out.println(任务创建成功ID: created.getId()); } }8. 创建任务的常见模式与最佳实践在实际项目中任务创建往往不是孤立的操作而是与业务逻辑深度绑定。以下是几种常见模式8.1 幂等创建当任务可能被重复创建时例如服务重启后的补偿逻辑建议先查询再创建避免产生重复任务existing client.tasks.list(nameorder_timeout_alert) if not existing: task Task(nameorder_timeout_alert, typescheduled, ...) client.tasks.create(task) else: print(f任务已存在ID: {existing[0].id})8.2 动态参数注入任务动作中的参数往往需要动态生成例如在创建任务时注入当前环境的 Tokenimport os token os.environ.get(WEBHOOK_TOKEN) action Action( kindwebhook, urlhttps://api.example.com/notify, methodPOST, headers{Authorization: fBearer {token}} )8.3 批量创建与错误处理当需要一次性创建多个任务时建议逐条捕获异常避免单条失败导致整体中断task_defs [ {name: task_a, type: scheduled, schedule: {cron: 0 0 8 * * ?}}, {name: task_b, type: scheduled, schedule: {cron: 0 0 9 * * ?}}, {name: task_c, type: scheduled, schedule: {cron: 0 0 10 * * ?}}, ] for definition in task_defs: try: task Task(**definition) client.tasks.create(task) print(f成功创建: {definition[name]}) except Exception as e: print(f创建失败 {definition[name]}: {e})9. 任务创建后的验证与监控任务创建成功后建议立即验证其配置是否正确。可以通过查询接口获取任务详情确认调度规则和动作参数无误curl -X GET https://api.workbuddy.io/api/v1/tasks/task_9c1d4e7f \ -H Authorization: Bearer YOUR_API_TOKEN同时WorkBuddy 提供了任务运行日志查询接口用于监控任务的实际执行情况curl -X GET https://api.workbuddy.io/api/v1/tasks/task_9c1d4e7f/runs?limit10 \ -H Authorization: Bearer YOUR_API_TOKEN建议在任务创建后设置一个「探针任务」定期检查核心任务是否正常运行并在异常时触发告警通知。10. 总结本文从 WorkBuddy 的任务模型出发系统介绍了通过 Web 控制台、命令行工具、REST API 以及 Python/Java SDK 创建任务的完整流程并给出了丰富的代码实例。核心要点总结如下理解任务模型掌握 name、type、action、schedule 等核心字段是正确创建任务的前提。选择合适的创建方式控制台适合日常管理CLI 适合脚本化操作API 和 SDK 适合深度集成。遵循最佳实践幂等创建、动态参数注入和批量错误处理能显著提升任务管理的健壮性。重视验证与监控创建后的验证和运行日志监控是保障任务稳定运行的关键环节。希望本文能帮助你快速上手 WorkBuddy 的任务创建并在实际项目中灵活运用。