使用Polly进行重试策略时,递归执行其他方法

时间:2019-09-06 04:20:09

标签: c# recursion polly retrypolicy

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

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

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

1 个答案:

答案 0 :(得分:0)

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