在 Apache HTTP 客户端库的帮助下从 Android 设备调用 Rails Web 服务时,我想克服以下情况
设想 :
客户端(Android):发起 HTTP POST 请求(使用 Apache HTTP 客户端,JSON 作为交换格式)将少量记录插入服务器数据库(MySQL)。
(SocketTimeOutException)
服务器(Rails 中的 Web 服务):处理请求并将记录成功插入数据库,但同时在客户端发生超时。
客户端(Android):超时时,重试执行相同的 HTTP POST 请求,并再次将相同的记录插入数据库并发生数据库不一致。
任何人都可以帮助我克服这种情况。
提前致谢
编辑:
我目前的情况:
1) 用户尝试通过填写和提交数据使用 Android 应用进行注册。所以基本上 POST 服务包含发送到服务器的所有必需用户(Rails 和 MySql)
2) POST 请求由服务器处理,该过程主要负责将记录插入数据库,并使用插入数据的 USER_ID 向客户端提供响应。
3) 轰隆隆!!数据已插入 MySql 数据库,但由于某种原因存在SocketTimeOutException
于 Android 端,因此 Android 端没有 USER_ID,用户尝试再次注册........ 数据库不一致,我很伤心:(
注意:步骤 3) 的发生非常罕见。但是当服务器太忙或有一些处理负载时,这种情况很常见。