feat: recover poll activations within original round budgets
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Weave 人工核查与接续
|
||||
|
||||
状态:内部Go服务已提供执行核查、步骤结论确认、解除核查,以及TASK新激活重试。公共HTTP、独立SDK和通用接入示例尚未交付;**POLL新激活恢复尚未实现,不能把已有逻辑结果核查当作查询重试已经完成**。完整交付继续按[开发计划](08-development-plan.md)推进。
|
||||
状态:内部Go服务已提供执行核查、步骤结论确认、解除核查,以及TASK/POLL新激活重试。POLL跨激活预算与附属信号换代见[查询恢复](17-workflow-poll-recovery.md)。公共HTTP、独立SDK和通用接入示例尚未交付;独立SIGNAL/TIMER等待重建继续实现。完整交付继续按[开发计划](08-development-plan.md)推进。
|
||||
|
||||
## 1. 四类操作
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
| ReviewTask | 核实本实例历史激活拥有的NEEDS_REVIEW任务,写入SUCCEEDED/FAILED、明确执行已结束和证据 | 不把查询请求成功解释成业务成功,不解除步骤或实例核查 |
|
||||
| ResolveStep | 将当前待核查/失败/取消叶子步骤核实为SUCCEEDED或FAILED,保存符合固定契约的逻辑结果 | 不重新执行旧任务,不清除实例核查或原停止意图 |
|
||||
| Continue | 在当前证据和步骤状态允许时解除实例核查,保存根接续 | 不解除显式paused,不延长截止,不撤销取消或失败结清 |
|
||||
| RetryStep | 为已确认失败/取消的TASK建立新的激活和关联任务,继续消耗原尝试预算 | 不重跑成功步骤,不改变输入/业务关联,不为POLL另起新轮次 |
|
||||
| RetryStep | 为TASK或POLL建立新的激活和关联任务,继续消耗原任务或原业务轮尝试预算 | 不重跑成功步骤,不改变输入/业务关联,POLL恢复不另起业务轮次 |
|
||||
|
||||
查询请求、外部业务结果和流程接续是不同事实。例如,查询任务核实为成功但返回PENDING,仍不能将POLL步骤核实为成功;POLL成功结论必须通过固定映射分类为SUCCEEDED。未知执行须先完成ReviewTask,再等待新版本结果进入内部Inbox并消费,才能确认步骤结论。
|
||||
|
||||
@@ -43,7 +43,7 @@ ResolveStep保存当前激活的新管理结论,审计记录前一状态、前
|
||||
|
||||
## 4. TASK重试预算
|
||||
|
||||
当前仅TASK支持RetryStep。要求没有取消或失败停止意图,实例和原任务绝对截止尚未到达,相关历史执行均已知失败或取消。核实实际尝试行数、任务attempt_count、连续激活序号、retry_of链、固定处理器/输入/队列/优先级和策略一致性。
|
||||
TASK恢复规则如下。要求没有取消或失败停止意图,实例和原任务绝对截止尚未到达,相关历史执行均已知失败或取消。核实实际尝试行数、任务attempt_count、连续激活序号、retry_of链、固定处理器/输入/队列/优先级和策略一致性。
|
||||
|
||||
- 新激活sequence递增;新任务retry_of指向前一任务,同一原任务只允许一个直接后继。
|
||||
- 新max_attempts = 固定定义max_attempts − 全部历史激活已用尝试数;首次尝试也计入。
|
||||
@@ -54,7 +54,7 @@ ResolveStep保存当前激活的新管理结论,审计记录前一状态、前
|
||||
|
||||
创建新任务后实例仍处于核查,门控保持关闭。操作者确认其他事项已处理后调用Continue,才允许新任务取得执行授权;原paused仍为true时还需正常RESUME。
|
||||
|
||||
POLL恢复仍需实现跨激活的原轮次归属、单轮剩余尝试及原查询截止传递。当前RetryStep明确拒绝POLL,禁止通过新建业务轮次规避耗尽的单轮预算。SIGNAL/TIMER逻辑结论可核查,但不通过此操作重新开始等待;恢复等待/查询的完整范围仍需后续实现与验收。
|
||||
POLL跨激活恢复已实现,保留原业务轮、同轮剩余尝试、查询总截止和该轮原任务截止;成功返回PENDING的轮次不能人工重查。附属最终信号等待沿用原契约/关联/截止并更换代次,详见[查询恢复](17-workflow-poll-recovery.md)。核查后已确认PENDING的显式等待接续仍需补齐;独立SIGNAL/TIMER逻辑结论可核查,等待重建仍待实现。
|
||||
|
||||
## 5. 停止与到期
|
||||
|
||||
@@ -68,6 +68,7 @@ POLL恢复仍需实现跨激活的原轮次归属、单轮剩余尝试及原查
|
||||
| --- | --- |
|
||||
| TASK效果未知,核实成功 | 读取当前实例/任务 → ReviewTask(SUCCEEDED) → 等待内部结果消费 → 读取当前版本 → ResolveStep(SUCCEEDED) → Continue → 后台接续 |
|
||||
| TASK已确认失败,原预算仍有余量 | 读取当前实例/步骤/激活 → RetryStep → 核对新任务及原截止 → Continue → Worker执行新任务 |
|
||||
| POLL请求失败且仍有预算 | RetryStep → 核对同业务轮和剩余尝试 → Continue;结果PENDING才按原间隔开下一轮 |
|
||||
| POLL次数耗尽,人工取得最终结果 | 核实历史请求均已结束 → ResolveStep(符合固定成功映射的结果) → Continue;原used_rounds不改变 |
|
||||
| 取消后出现UNKNOWN | ReviewTask → 等待消费 → ResolveStep → Continue → 原取消结清;不创建后继工作 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user