ZGI Workflow:外部接口成功后,任务状态怎么落下来

企业流程经常要调用订单、财务、人事或消息系统。接口返回成功,只说明对方收到并处理了请求的一部分;工作流还要把回执接回当前任务,更新节点状态,保存可查询的业务编号。缺少这一步,用户看到的页面状态和业务系统里的真实结果就可能不一致。

概念示意图:外部接口回执回到 Workflow 状态,任务才能判断业务是否真正完成。

请求发出后,至少要留下三类信息

每次外部调用都应记录本次任务、执行节点和目标对象。请求编号用于向外部系统查询,节点编号用于回到工作流定位位置,目标对象用于确认这次动作作用在哪条订单、哪张发票或哪个员工记录上。

接口响应还要区分业务成功、业务拒绝、参数错误和结果未知。HTTP 200 只能说明网络层收到响应,不能替代外部系统的业务状态。对付款、写入、发消息等动作,最好保存外部返回的状态和时间。

页面状态和业务状态需要分开看

工作流节点可能处于运行中、成功、失败或等待。外部系统还可能返回已受理、处理中、已完成、已拒绝等状态。两组状态并非一一对应:请求已受理时,节点可以进入等待;业务完成后,节点才适合标记为成功。

工作流状态 外部回执 后续动作
运行中 尚未收到 等待或按策略查询
等待 已受理、处理中 保存编号,等待更新
成功 已完成 写入最终结果并通知
失败 业务拒绝、参数错误 停止并返回原因
结果未知 超时或连接中断 先查外部状态,再决定是否重试

超时不能直接当成失败

调用超过等待时间时,外部系统可能根本没收到请求,也可能已经完成动作,只是响应没有回来。此时直接重试,容易产生重复订单、重复通知或重复写入。

更稳妥的路径是保存原请求编号和幂等键,先查询外部系统是否已有对应结果。查到已完成,就把回执补回任务;查到未受理,再根据错误类型决定是否重试;始终无法确认时,保留"结果未知"并交给人工判断。

ZGI Workflow 把状态放回运行链

ZGI Workflow 的运行记录包含版本、节点状态、输入输出和事件信息。接入外部系统时,可以让调用节点输出请求编号、目标对象和响应状态,再由后续节点决定查询、等待、通知或人工处理。

这里需要团队补齐外部接口的业务规则。ZGI 能够承接节点和状态的组织,接口是否支持幂等、查询接口怎样设计、哪些状态允许重试,仍取决于具体业务系统。

用一条真实任务验收

挑一条会写入外部系统的任务,分别模拟正常响应、业务拒绝、网络超时和响应丢失。每种情况都检查工作流节点状态、外部业务编号、重试行为和最终通知。特别关注"请求已成功但响应丢失"这条路径,它最容易被误判成可直接重试。

当运行记录能回答"谁发起、调用哪个接口、作用于哪个对象、外部返回什么、任务现在停在哪里",排查才有稳定入口。业务系统的最终状态也应成为任务完成条件的一部分。

对于需要异步处理的接口,还要约定查询间隔、最长等待时间和人工接管条件。状态长时间没有变化时,系统可以提醒负责人查看外部系统,而不是让同一节点无期限保持运行。每一次查询都沿用原请求编号,便于把多次回执归并到同一条任务记录。

GitHub:https://github.com/zgiai/zgi

Gitee:https://gitee.com/zgiai/zgi

相关推荐
Decay__3 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
Easy_API5 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo5 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
代码山河5 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
紧跟先前的步伐5 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
释厄6236 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
微订校园外卖平台7 小时前
校园外卖平台选模板还是定制:架构、数据流与验收清单
大数据·架构·外卖系统·本地生活·微订
老金带你玩AI7 小时前
集万家所长,一键复制的Agent.md!
人工智能
ZhuoAIStage7 小时前
舞台工艺多专业审图提速:用 AI 智能体编排 A+B+C+G 四段读图流水线
人工智能·自动化·工作流编排·舞台工艺·审图智能体
小奶包他干奶奶7 小时前
AI学习——1、机器学习概念
人工智能·机器学习