我使用OkHttp
3.9在Android应用中进行POST
调用,通过Api网关触发Lambda功能来更新AWS DynamoDb database
。我注意到每次调用时数据库都会更新3次。显然这是由于OkHttp的默认重试选项。
据我了解,可以通过在构建客户端时将retryOnConnectionFailure设置为false来防止重试。我试过这个但是数据库仍然更新了3次 - 所以调用仍然是3次。
有人建议在我的服务器上处理此行为。问题是,如果我在Lambda函数中处理问题,那么这意味着api已被调用三次,因此具有lambda函数,所有不必要的开销和成本。此外,如果将retryOnConnectionFailure设置为false并且api仅被调用一次,则意味着没有处理故障的机制。
那么,为什么即使每次通话都成功,它也会重试3次?最重要的是,如何阻止这种情况发生,以便只在呼叫失败时(即成功触发lambda函数)只调用一次api然后再调用一次?将retryOnConnectionFailure
设置为false
似乎无效。
答案 0 :(得分:0)
所以我脸上有鸡蛋!
OkHttp没有问题!经过一些进一步的调查后,我发现了一个调用来更新我正在调用的lambda函数中的数据库。所以这是调用额外的更新,而不是OkHttp重试!
对不起。