【问题标题】:Execute different method recursively when using Polly for retry-policy使用 Polly 进行重试策略时递归执行不同的方法
【发布时间】:2019-09-06 04:20:09
【问题描述】:

我是 Polly 构建重试策略的新手,我注意到,如果 Polly 遇到特定异常,它将一遍又一遍地执行相同的方法。但是,Polly 是否可以递归地使用不同的方法重试?这是我当前工作流程的一个示例:

  • 我有一个要作为批处理操作写入数据库的项目列表,但我不知道我的列表的总数据大小。
  • 我的数据库写入操作会有一定大小的限制,比如说它的最大大小为 2 MB。
  • 假设我的输入列表包含 5,000 项,那么当它超过我的数据库写入操作限制时,会抛出异常。我想做的是将 5000 个项目分成 2 个子集,每个子​​集有 2500 个项目。然后尝试再次使用这两个子集编写...
  • 如果我的 2,500 个项目的两个子集仍然超出限制,我会将 2500 个项目分成 2 个子集,每个子​​集 1,250 个项目,然后再试一次。

所以基本上我的重试策略将基于递归方式执行,当遇到异常时,拆分数据集并重试,然后继续......但是,使用 Polly 我找不到递归调用我的执行方法的方法...

【问题讨论】:

  • Polly 确实适用于“瞬态故障处理”。您应该为所描述的非瞬态行为实现自己的逻辑,并使用 Polly 来处理瞬态故障。此外,在最初的几次之后,您肯定不想记住 N 的哪些值起作用并从那开始,而不是每次都试图发现它?

标签: c# recursion polly retrypolicy


【解决方案1】:

Polly 的重试策略旨在重试相同的委托调用。递归不是 Polly 目标的用例。

【讨论】:

    猜你喜欢
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多