【发布时间】: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