feat: expose workflow state events and persist signal transitions
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
- [完整命令、输入输出与失败处理](workflow.md)、[独立SDK源码](../../sdk/go/examples/workflow/main.go)。
|
||||
- 两个任务并行处理并汇合,计时等待后接收显式目标代次的信号,再执行后续任务;最终三个任务完成并有界排空。
|
||||
- 启动及信号原键重复不会建立新的实例或信号。
|
||||
- 启动及信号原键重复不会建立新的实例或信号;分页查看原状态事件,核对信号消费及赢家等待。
|
||||
|
||||
## 已可运行:业务事务与任务提交Outbox
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ chmod 700 .local
|
||||
go run ./cmd/orbit-admin bootstrap \
|
||||
--application workflow-example --namespace default --environment development \
|
||||
--queue workflows --workflow-access --workflow-run-access \
|
||||
--workflow-signal-access --worker-access \
|
||||
--workflow-signal-access --workflow-audit-access --worker-access \
|
||||
--output .local/workflow.credentials.json
|
||||
go run ./cmd/orbit
|
||||
```
|
||||
@@ -31,7 +31,7 @@ go run ./examples/workflow
|
||||
|
||||
## 2. 调用链与输出
|
||||
|
||||
CreateWorkflowDefinition → PublishWorkflowVersion(v1) → StartWorkflow → 原键再次StartWorkflow → 自动Worker并行执行 → GetWorkflowStep读取当前信号契约与代次 → SendWorkflowSignal → 原键再次发送 → 后继任务完成 → GetWorkflow → GetWorkflowSteps和GetTaskSource核对三个任务的固定来源 → Worker有界排空。
|
||||
CreateWorkflowDefinition → PublishWorkflowVersion(v1) → StartWorkflow → 原键再次StartWorkflow → 自动Worker并行执行 → GetWorkflowStep读取当前信号契约与代次 → SendWorkflowSignal → 原键再次发送 → 后继任务完成 → GetWorkflow → GetWorkflowSteps和GetTaskSource核对三个任务的固定来源 → 读取历史激活与信号 → 分页读取状态事件并核对消费记录 → Worker有界排空。
|
||||
|
||||
预期输出中的ID每次运行不同:
|
||||
|
||||
@@ -39,6 +39,7 @@ CreateWorkflowDefinition → PublishWorkflowVersion(v1) → StartWorkflow →
|
||||
workflow=<32位实例ID> state=SUCCEEDED result={"text":"HELLO ORBIT"} start_deduplicated=true signal_deduplicated=true
|
||||
workflow_sources_verified=3 fixed_version=v1
|
||||
workflow_history_verified=true signal_state=CONSUMED
|
||||
workflow_timeline_verified=true events=<事件数> signal_transition=PENDING->CONSUMED
|
||||
worker_drained=true started=3 confirmed=3
|
||||
```
|
||||
|
||||
@@ -56,4 +57,8 @@ worker_drained=true started=3 confirmed=3
|
||||
|
||||
[公共SDK集成测试](../../sdk/go/workflow_instances_integration_test.go)还实际运行:启动响应丢失的原键恢复;暂停/继续、定时等待、信号消费和取消;UNKNOWN执行核查、步骤结论及解除核查;剩余尝试内TASK重试与SIGNAL换代;确认PENDING后沿原查询预算继续。使用`make integration`在一次性环境复现。
|
||||
|
||||
历史激活和信号列表已接入,示例核对指定历史等待的winner与信号CONSUMED状态。实例筛选分页、更多独立业务示例及生产验收仍按[计划](../08-development-plan.md)推进。
|
||||
历史激活和信号列表已接入,示例核对指定历史等待的winner与信号CONSUMED状态。[实例筛选分页](workflow-query.md)已接入;更多独立轮询/恢复示例及生产验收仍按[计划](../08-development-plan.md)推进。
|
||||
|
||||
## 5. 状态事件审计
|
||||
|
||||
例子使用显式审计权限,按每页5条调用ListWorkflowEvents,再用GetWorkflowEvent展开已消费信号,核对原状态PENDING和历史等待ID。当前成功流程的事件仍保留早先WAITING等状态。事件数量可能随实际推进次数变化,不将数量写死为业务契约;示例会确认必要消费事件存在。字段、分页限制和旧版本历史缺口见[时间线手册](../api/workflow-events.md)。
|
||||
|
||||
Reference in New Issue
Block a user