我们正在构建一个呼叫管理软件,允许不同的人分配给他们的呼叫,他们可以在移动设备上编辑这些呼叫,然后关闭来自移动设备的呼叫,该呼叫将同步回服务器以供中央管理员监控。对于线性数据流,即在服务器上创建的呼叫>发送到手机>在手机上更新>发送回服务器我们已经能够建立数据流,一切正常。
我陷入了这个工作流程可能出现的下一个复杂程度,即如果在创建呼叫并将其发送到移动设备之后,如果它在服务器上得到更新,那么如何将此更改与移动设备同步,保持请记住,由于呼叫尚未关闭,可能还会对移动设备进行一些尚未同步的更改。现在没有自动同步,移动用户必须按下一个按钮,指示当呼叫关闭时将数据发送回服务器的操作,这是我们希望作为工作流程的一部分。与此同时,我们希望在数据同步和更新方面实现一些自动化,直到呼叫关闭为止。
我可以得出的类比是使用git和代码版本控制(在推送之前拉动)但是可能会发生必须手动解决的合并冲突。
感谢对此问题的任何见解。
ps:在android和PostgreSQL(ruby on rails)上实现SQLite,移动设备从服务器缓存数据结构,从服务器存储记录的各个ID,以调用REST API以更新服务器上的数据。 / p>
答案 0 :(得分:0)
因此我们设法编写了许多自定义API来处理服务器和客户端之间的所有数据交换。我们提出了一个自定义冲突解决方案,它描述了从移动设备可编辑的所有数据字段的更高优先级,因此每次将数据同步到移动设备时,都会保存更高优先级的数据(即,如果移动设备已更改这些字段,那么这些值是即使服务器也改变了数据也保持不变)。 此外,我们在编辑移动设备中的数据之前从服务器执行数据提取,以确保始终提供最新数据。 这与我们试图实现的业务逻辑一致,因此无法概括这一点。