是否有一种方法可以使用Alamofire进行指数退避重试

问题描述 投票:-1回答:2

我正在尝试使用Alamofire实现指数退避重试逻辑,以防服务器返回500由于某些原因导致我的终点。

有没有办法让我能用Alamofire实现这个目标?请以示例为指导。

提前致谢。

swift alamofire exponential-backoff
2个回答
3
投票

Alamofire 5 beta 2现在支持基于错误条件的自动重试以及可自定义的退避。看一看!


1
投票

是的,这很简单,虽然我不相信Alamofire本身提供它。但是,由于库确实允许您发出网络请求,因此如果您因500错误而失败,则只需使用指数退避重试即可。具体来说,在Alamofire请求的完成块中,您检查状态代码,如果是500,请在延迟后重试。该延迟应存储在网络管理器级别的某些单例中,并随着故障发生时沿着您喜欢的指数延迟曲线增加。然后,当您的请求成功时,应将其重置为基本延迟。

© www.soinside.com 2019 - 2024. All rights reserved.