首页 > 解决方案 > 服务器和移动设备之间的同步超时问题

问题描述

我在服务器和android应用程序之间进行数据同步时遇到问题,我已经搜索过但没有找到好的解决方案。也许有人有一些想法可以帮助我......

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

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

下次同步时,这条记录会在没有id_server的情况下继续,并且会再次发送一个POST,所以记录是重复的......

任何想法如何防止这个问题?

标签: androidruby-on-rails-4retrofit2ormlite

解决方案


增加连接超时。如果你使用 volley 那么你必须做这样的事情 -

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

这里15000是超时毫秒。将其设置为50000毫秒,如 50 秒,您的问题将得到解决。

如果你在 raw 中使用 httpurl 连接,那么只需输入这一行 -

  httpURLConnection.setConnectTimeout(50000);

推荐阅读