有没有办法与Alamofire进行指数补偿重试

时间:2019-02-17 23:21:43

标签: swift alamofire exponential-backoff

由于某些端点由于某些原因,如果服务器返回500,我试图使用Alamofire来实现指数回退重试逻辑。

有什么方法可以使用Alamofire做到这一点吗?请以示例为指导。

谢谢。

2 个答案:

答案 0 :(得分:3)

Alamofire 5 beta 2现在包括对基于错误情况的自动重试的支持,并具有可自定义的补偿。看看!

答案 1 :(得分:1)

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