美文网首页iOS开源代码iOS Development
[开源APP推荐] TO-DO – 一个无后端待办事项应用,数据

[开源APP推荐] TO-DO – 一个无后端待办事项应用,数据

作者: wjh2005dev | 来源:发表于2016-12-27 13:56 被阅读403次

    TO-DO - 一个无后端待办事项应用,数据用LeanCloud进行同步

    作者博客:http://siegrain.wang/post/to-do-de-tong-bu-shi-xian-si-lu

    该项目是一个开源的无后端的待办事项应用,数据用LeanCloud进行同步,正在开发中,目前的进度大概是刚好把数据同步做完。。

    思路来源

    该同步思路来源于以下两篇回答,并根据项目需求总结而来。

    服务端和各种客户端(手机端,平板端,web端)怎样进行数据同步?

    Evernote 的同步方式是怎样的?

    同步方式

    每一批次两个并行队列,每次最多同步X条数据,超过X条下次进行同步。

    每批同步分上传和下载(与队列不对应),若上传或下载数超过上限,则下一批次同步。

    同步类型

    若本地没有同步记录,则将本地所有数据进行上传,并将服务器上所有的数据进行下载(Incremental Sync)

    若lastSyncTimeOnServer = lastSyncTimeOnClient,表明服务器数据没有变化,则仅需要上传本地修改过的数据和新增的数据(Send Changes)

    若lastSyncTimeOnServer > lastSyncTimeOnClient,则进行全量同步,先对比同步所有已有数据,再将其他数据从服务器上下载(Full Sync)

    其他情况进行(Incremental Sync)

    注意事项

    所有同步时间戳均以服务器时间为准,每次同步之前先获取服务器的时间戳

    对比同步规则:1.大版本同步小版本 2.版本相同的话,以线上数据为准进行覆盖(另一种做法是建立冲突副本,根据本项目的实际情况不采用这种方式)

    异常情况

    以下几种情况会影响同步时数据的原子性:

    云函数返回之前挂掉:下次同步则为full sync,同时在对比时会将objectId赋值给本地对应的待办事项。

    若在批次之间挂掉的话(上一批成功,下一批挂掉),这时需要在判断同步类型时,判断上一次同步成功的记录次数,若次数超限,此次同步为full sync。

    同步难点

    处理各种异常情况,保证数据的一致性和原子性

    同步效率

    分批同步


    源码下载:

    http://www.ioscodehub.com/2016/12/27/to-do-%E4%B8%80%E4%B8%AA%E6%97%A0%E5%90%8E%E7%AB%AF%E5%BE%85%E5%8A%9E%E4%BA%8B%E9%A1%B9%E5%BA%94%E7%94%A8%EF%BC%8C%E6%95%B0%E6%8D%AE%E7%94%A8leancloud/

    特别声明:

    本人非项目作者。此为收集推荐。如原作者认为有侵权,请联系本人删除。

    特别感谢项目作者的无私开源。

    敬请关注:www.ioscodehub.com

    微信订阅号:iOSAppOpenSource

    相关文章

      网友评论

        本文标题:[开源APP推荐] TO-DO – 一个无后端待办事项应用,数据

        本文链接:https://www.haomeiwen.com/subject/yjtevttx.html