我正在研究.NET核心WebAPI项目中的重试逻辑。我在那里使用polly,我们有WaitAndRetryAsync,WaitAndRetry方法。
WaitAndRetryAsync和WaitAndRetry的区别是什么?
什么时候应该使用哪一种?
发布于 2022-07-24 04:55:21
当您使用Polly时,您必须预先了解一些关于您要修饰的方法/函数的信息,以便能够以正确的方式定义策略。
在重试的情况下,可以使用16种不同的方法来覆盖不同的用例。


方法或功能
如果要被修饰的方法不返回任何值,则使用Policy.Handle...

但是,如果它以特定类型返回,则更倾向于Policy<T>.Handle...

同步或异步
如果要修饰的方法/函数是同步的,那么更喜欢那些而不是有Async后缀的方法。


但是,如果您想装饰一个异步方法/函数,那么更喜欢带有Async后缀的方法/函数。


有或没有惩罚
如果您不想在重试尝试之间等待(所以您希望在上次失败的尝试之后立即开始新的尝试),那么更喜欢那些以Retry开头的方法


如果您确实希望在尝试之间等待,那么使用具有Wait前缀的方法之一。


有限或无限制的重试尝试
如果您知道要修饰的方法/函数最终会成功,但不知道经过多少次重试之后,那么更喜欢那些方法名包括Forever的方法。


如果您不知道要修饰的方法/函数最终是否会成功,并且不想无限期地等待,那么更喜欢那些而不是包含单词Forever的方法,这样您就可以指定最大的重试尝试。


https://stackoverflow.com/questions/73095394
复制相似问题