服务器与移动设备之间的同步超时问题

时间:2018-08-03 00:52:56

标签: android ruby-on-rails-4 retrofit2 ormlite

在服务器和android应用之间的数据同步期间,我遇到了问题,我已经搜索过,但是找不到一个好的解决方案。也许有人有什么想法可以帮助我...

只是为了解释我的应用程序如何工作,我有一个可以离线工作并可以与Rails服务器同步的android应用程序。要脱机工作,登录时我会同步服务器中的所有表/记录,并将所有内容保存到应用程序数据库中。在应用程序中,我同时保存了id_server和id_mobile,当应用程序脱机工作时,仅生成id_mobile,然后发出POST请求以在服务器上创建记录,作为回报,我得到了一些数据,例如id_server,created_at,updated_at和Deleted_at并更新我的应用数据库中的记录。

我的问题是,当我发出POST请求以在服务器上创建数据时,服务器接收到该请求并进行处理,当服务器将请求返回给应用程序时,由于互联网状况不佳,发生了超时我没有服务器的记录来更新应用程序数据库中记录的id_server,created_at,updated_at和Deleted_at!

在下一次同步时,该记录将在没有id_server的情况下继续运行,并将再次发送POST,因此该记录正在复制...

有什么主意如何预防此问题?

1 个答案:

答案 0 :(得分:0)

增加连接超时。 如果您使用凌空抽射,则必须执行以下操作-

 stringRequest.setRetryPolicy(new DefaultRetryPolicy(15000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

此处 15000 是超时毫秒。将其设置为 50000 毫秒,如50秒 这样您的问题就会解决。

并且如果您在原始环境中使用httpurl连接,则只需输入这一行-

  httpURLConnection.setConnectTimeout(50000);