App Engine 网络错误 - 怎么办?
app engine network error - what to do?
一个相当简单的问题。
假设 Android 客户端调用 Google App Engine 上的 java enpoint 来更新银行帐户。它执行,但在发回响应期间,发生网络错误。但是客户永远不知道:
- 在 App Engine 上更新银行帐户之前发生网络错误,在这种情况下一切正常,他可以重试。
- 在 App Engine 上执行后发生网络错误,在这种情况下重试并再次更新银行帐户会出错!!
所以,问题:如果发生网络错误,客户端显然可以选择重试或不重试。他如何确定正确的行动方案? IE。以某种方式发现网络错误发生在后端实际 activity 之前,因此重试,或者意识到这是返回途中的网络错误并且正确地不重试。
调整交易协议,让客户端再次连接服务器获取交易状态。
这提供了很大的灵活性,例如您的客户可以:
- 可靠检测 GAE 应用程序是否实际收到交易请求
- 在交易执行期间不阻塞(这很重要,以防 GAE 应用程序和银行系统之间出现问题或交易花费大量时间)
- 跟踪事务失败并在需要时重试
- 取消仍在等待处理的交易
一个相当简单的问题。 假设 Android 客户端调用 Google App Engine 上的 java enpoint 来更新银行帐户。它执行,但在发回响应期间,发生网络错误。但是客户永远不知道:
- 在 App Engine 上更新银行帐户之前发生网络错误,在这种情况下一切正常,他可以重试。
- 在 App Engine 上执行后发生网络错误,在这种情况下重试并再次更新银行帐户会出错!!
所以,问题:如果发生网络错误,客户端显然可以选择重试或不重试。他如何确定正确的行动方案? IE。以某种方式发现网络错误发生在后端实际 activity 之前,因此重试,或者意识到这是返回途中的网络错误并且正确地不重试。
调整交易协议,让客户端再次连接服务器获取交易状态。
这提供了很大的灵活性,例如您的客户可以:
- 可靠检测 GAE 应用程序是否实际收到交易请求
- 在交易执行期间不阻塞(这很重要,以防 GAE 应用程序和银行系统之间出现问题或交易花费大量时间)
- 跟踪事务失败并在需要时重试
- 取消仍在等待处理的交易