欢迎光临
我们一直在努力

TO-DO

建站超值云服务器,限时71元/月

TO-DO

项目介绍:

TO-DO

https://github.com/Seanwong933/TO-DO

项目演示

1 2

关于项目

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

思路来源

该同步思路来源于以下两篇回答,并根据项目需求总结而来。
服务端和各种客户端(手机端,平板端,web端)怎样进行数据同步?
Evernote 的同步方式是怎样的?

同步方式

每一批次两个并行队列,每次最多同步X条数据,超过X条下次进行同步。
每批同步分上传和下载(与队列不对应),若上传或下载数超过上限,则下一批次同步。

同步类型

1 若本地没有同步记录,则将本地所有数据进行上传,并将服务器上所有的数据进行下载(Incremental Sync)
2 若 lastSyncTimeOnServer = lastSyncTimeOnClient,表明服务器数据没有变化,则仅需要上传本地修改过的数据和新增的数据(Send Changes)
3 若 lastSyncTimeOnServer > lastSyncTimeOnClient,则进行全量同步,先对比同步所有已有数据,再将其他数据从服务器上下载(Full Sync)
4 其他情况进行(Incremental Sync)

注意事项

1 所有同步时间戳均以服务器时间为准,每次同步之前先获取服务器的时间戳
2 对比同步规则:1.大版本同步小版本 2.版本相同的话,以线上数据为准进行覆盖(另一种做法是建立冲突副本,根据本项目的实际情况不采用这种方式)

异常情况

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

1 云函数返回之前挂掉:下次同步则为full sync,同时在对比时会将objectId赋值给本地对应的待办事项。
2 若在批次之间挂掉的话(上一批成功,下一批挂掉),这时需要在判断同步类型时,判断上一次同步成功的记录次数,若次数超限,此次同步为full sync。

同步难点

1 处理各种异常情况,保证数据的一致性和原子性
2 同步效率
3 分批同步

同步流程

同步算法、思路等

《TO-DO》的同步实现思路

code4app

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » TO-DO
分享到: 更多 (0)