2016-04-30 115 views
0

我们正在构建一个呼叫管理软件,允许不同的人分配给他们的呼叫,他们可以在手机上编辑,然后关闭手机的呼叫,同步回服务器以供中央管理员监视。对于线性数据流,即在服务器上创建的呼叫>发送到移动设备>在移动设备上更新>发送回服务器,我们已经能够建立数据流并且一切正常。客户端(android)和服务器之间的同步数据库(rails PostgreSQL)

我被困在可能出现在这个工作流程中的复杂度的下一个层次上,即如果在创建通话并发送到移动设备之后,如果它在服务器上得到更新,那么如何将此更改与移动设备同步,请记住,由于呼叫尚未关闭,移动设备上可能还有一些尚未同步的更改。目前没有自动同步,移动用户必须按下一个按钮,该按钮指示在呼叫关闭时将数据发送回服务器的操作,这是我们希望作为工作流程的一部分。与此同时,我们希望在数据同步和更新方面发生一些自动化,直到通话结束。

我可以拿出来的类比是使用git和代码版本控制(拉动之前拉动),但是可能会发生必须手动解决的合并冲突。

欣赏对此问题的任何见解。

ps:在android和PostgreSQL(ruby on rails)上使用移动aping数据结构从服务器存储服务器记录的相应ids的记录来调用REST API来更新服务器上的数据。

回答

0

因此,我们设法编写了很多自定义API来处理服务器和客户端之间的所有数据交换。我们想出了一个自定义的冲突解决方案,它描述了所有可以从移动设备编辑的数据字​​段的更高优先级,所以每次数据同步到移动设备时,优先级更高的数据被保存(即如果移动设备改变了那些字段,那么这些值是即使服务器也改变了数据)。 另外,我们在编辑移动设备中的数据之前,先从服务器获取数据,以确保始终获得最新的数据。 这符合我们试图实现的业务逻辑,因此不能概括这一点。

相关问题