App Engine 网络错误 - 怎么办?

app engine network error - what to do?

一个相当简单的问题。 假设 Android 客户端调用 Google App Engine 上的 java enpoint 来更新银行帐户。它执行,但在发回响应期间,发生网络错误。但是客户永远不知道:

所以,问题:如果发生网络错误,客户端显然可以选择重试或不重试。他如何确定正确的行动方案? IE。以某种方式发现网络错误发生在后端实际 activity 之前,因此重试,或者意识到这是返回途中的网络错误并且正确地不重试。

调整交易协议,让客户端再次连接服务器获取交易状态。

这提供了很大的灵活性,例如您的客户可以:

  • 可靠检测 GAE 应用程序是否实际收到交易请求
  • 在交易执行期间不阻塞(这很重要,以防 GAE 应用程序和银行系统之间出现问题或交易花费大量时间)
  • 跟踪事务失败并在需要时重试
  • 取消仍在等待处理的交易