跳到主要内容

Execute Failure Recovery

Execute 方法在重试策略耗尽后仍然失败时,自动恢复。

Definition graph

FailureRecoveryFlow

Valid

python · examples/python/dex_examples/patterns/recovery/failure_recovery_flow.py

ExecuteFailureRecoveryFlowFailingStep 开始。它的 Execute 方法可能失败;重试耗尽后,其 ExecuteFailure 策略将 Flow 转到 RecoveryStepRecoveryStep 执行补偿操作并完成 Flow。

当 Flow 无需人工即可恢复时使用此模式。恢复 Step 应保持幂等,因为它可以独立重试。

核心实现

恢复目标定义在失败 Step 的 ExecuteFailure 策略中。恢复上下文会提供失败信息。

class FailingStep(Step[str]):
def get_step_options(self) -> StepOptions:
return StepOptions(
execute_retry=RetryPolicy(maximum_attempts=3)
).on_execute_failure_proceed_to(RecoveryStep)

def execute(self, context: Context, input: str) -> StepDecision:
raise RuntimeError("planned Execute failure")

class RecoveryStep(Step[str]):
def execute(self, context: Context, input: str) -> StepDecision:
return graceful_complete(f"recovered {input}")

例子: examples/python/dex_examples/patterns/recovery/failure_recovery_flow.py

相关内容