等待业务事件或审批后继续运行

让实例等待匹配事件,或等待指定用户批准,再观察同一实例继续。

适用场景与读者

适合需要等待外部业务信号或人工决定后继续运行的用户。

开始前准备

先完成教程公共准备,再准备下表中的资源。

资源 要求
事件环境 专属事件编码和业务键;有创建EVENT任务及发布事件的权限。
审批环境 DATABASE账号模式,指定ADMIN或OPERATOR账号已完成首次改密并处于启用状态。

配置一览

界面字段 / 配置项 本例填写值
事件编码 / 业务键 docs.order.ready / order-001
任务公共超时 留空
等待超时 / 回看 300秒 / 0秒
审批人员 本环境真实允许操作人,不填示意ID

操作步骤

1. 发布等待定义并启动等待

新建EVENT任务,动作选等待事件(WAIT_EVENT)。如果切换动作时提示清空任务公共超时,确认清空;保持公共超时留空,使用插件的等待超时300秒、回看0秒。事件编码填 docs.order.ready、业务键填 order-001,本例关联键留空。

保存发布后手动执行,在运行中心确认WAITING_EVENT并记下实例ID。等待超时与普通任务执行超时是不同字段,不能同时填写正数公共执行超时。

2. 发布匹配事件

另建EVENT发布事件任务,使用相同事件编码和业务键;关联键按等待配置一致,内容填{"rows":3}。保存后执行发布任务。

3. 核对原实例恢复

回到第一步实例,检查它离开等待并完成;查看等待匹配记录与输出,不把发布任务自己的成功实例误认为等待实例。

4. 建立审批变体

新建EVENT任务,动作选等待审批(WAIT_APPROVAL),任务描述中填写业务说明。在审批动作字段选择真实允许操作人、等待超时300秒,保持任务公共超时留空;如出现清空公共超时确认则确认。

保存执行后,用指定的ADMIN或OPERATOR账号进入审批,核对关联业务与实例后批准。观察同一实例完成;需要查看日志或输出变量时使用ADMIN会话。

5. 观察拒绝,并按需扩展权限检查

再次创建独立等待,演练拒绝并查看失败原因;非允许账号不能处理该审批。超过期限或已处理的等待不能当成新成功重复批准。

6. 扩展:核对HTTP入口去重

HTTP入口需启用app.event.ingress.enabled,并使用有EVENT_PUBLISH权限的已登录账号。新建一条独立等待,业务键使用order-http-001;确认等待已建立后,向POST /api/events发送:

{"sourceKey":"docs-http-demo","eventCode":"docs.order.ready","businessKey":"order-http-001","idempotencyKey":"tutorial-http-001","payload":{"rows":3}}

第一次响应应为duplicate=false。保持来源、幂等键和内容不变,重复同一个请求,预期返回同一eventId且duplicate=true;原等待实例只恢复一次。重新开始独立练习时同时换用新的业务键和幂等键。

预期结果

检查项 预期值
匹配事件 原等待实例恢复为SUCCESS,实例ID不变
审批通过 决定可追溯,同一实例继续并达到SUCCESS
审批拒绝 独立等待实例结束为FAILED,可查看拒绝原因
HTTP入口重复发布(扩展) 相同来源、幂等键和内容返回相同eventId;第二次duplicate=true
错误键或未授权用户(可选扩展) 不恢复错误等待 / 不允许审批,需分别演练

常见失败

现象 处理方法
STATIC模式无审批人 审批使用DATABASE账号模式;不要为了教程临时关闭认证。
事件早于等待 回看0时先建立等待;需要历史匹配时明确设置回看窗口。

安全与清理

停止仍等待的练习实例,停用本教程事件绑定或调度;不重复发布同一真实业务事件。

适用版本与限制

适用1.0.0事件等待、DATABASE审批及HTTP入口幂等。HTTP重复发布应分别核对eventId和duplicate字段;它不等同于EVENT发布任务的执行结果。错误键、未授权用户、文件探测和重启恢复需分别演练。

界面参考

以下为该功能的真实界面参考;示例名称和实例 ID 可与本次运行不同。扩展步骤以正文配置和结果为准。

界面参考:event-run

界面参考:approval-run

相关页面

文档版本 1.0.0。命令中的示例路径、资源和端口需替换为自己的环境。