【发布时间】:2014-12-18 02:32:20
【问题描述】:
我正在开发一个具有离线功能的自动同步应用程序。用户将创建文件夹和文档,并可以与服务器同步。有一个自动同步的功能,其中与服务器的同步将在后台每小时发生一次。在同步过程中,用户还可以创建、删除文件夹/文档。所有更改都保存在核心数据中。对于要发送到服务器的更改,我正在维护一个布尔值。如果 bool 为 NO,则将这些项目发送到服务器,一旦收到响应,将 bool 设置为 YES。
现在我的问题是如何确保在同步过程中完成的更改被发送到服务器。由于同步正在进行中,并且在此期间,如果我对已发送到服务器的项目进行任何更改,即使同步布尔设置为 NO,服务器的更改也会再次更新为 YES,并且这些更改不会发送到服务器。
注意:我不想在同步过程中对用户进行任何限制。
我怎样才能做到这一点?
【问题讨论】:
-
为此添加特殊属性是个坏主意。您应该将更改集存储在其他地方。另外,我建议您使用Ensembles 进行同步。
-
为什么要将特殊属性存储在数据库之外?这样你就失去了保存原子性,冒着两者之间破裂的风险......