服务任务
概要
服务任务描述流程内可由系统自动执行的操作(如调用后端服务、执行脚本、触发异步作业等)。
当前状态:
- 服务任务已经具备后端自动执行闭环;
- 系统内置默认执行器、回显执行器、HTTP / WebHook 执行器,可在节点激活后自动完成服务任务并推进流程;
- 后端已支持执行器注册表,可按
internal_name_key接入真实内部服务; - 服务提供者已增加 执行方式(execution_type),用于区分内部能力、HTTP、WebHook、AI / Agent;
- 真实业务调用已经支持基础超时控制,但重试、幂等、补偿策略仍需继续完善。
语义边界:
服务 任务表示“流程里要自动调用一个能力”;服务提供者表示“系统中有哪些可调用能力”;- 原先模糊的
Bot / AI不再作为参与者建模,而是收敛为ServiceProvider.execution_type = Agent。
下一步:定义服务任务的契约示例(输入/输出/错误码),并将默认执行器逐步替换为真实的内部服务执行器。
服务任务实现细节
- 服务契约示例
{
"service_name": "notify_email",
"execution_type": "Http",
"input": { "to": "[email protected]", "subject": "...", "body": "..." },
"timeout_ms": 5000,
"retry": { "max": 3, "backoff_ms": 200 }
}
- 幂等性与错误策略
- 每次调用应包含
idempotency_key或保留可重放的trace_id; - 定义错误分类(可重试/不可重试)并在任务上记录重试计数;
- 超过重试后转入死信队列并生成告警。
- 调用适配器与扩展点
- 提供 HTTP/GRPC/消息队列等调用适配器;
- 支持用户自定义插件或脚本以连接非标准系统。
当前后端已经具备扩展点,并已支持直接配置 HTTP / WebHook 调用;后续只需要按业务继续补充执行器,而不必重写执行引擎主链路。
- 监控与可观测性
- 记录调用延时、成功率与错误码;
- 为 关键服务任务创建 SLA 报表与告警阈值。
- 示例测试用例
- 模拟成功返回、超时、间歇性错误并验证重试策略;
- 校验幂等性在重复提交场景下的行为。