本文只作为笔记记录。
需求:
服务器一份数据,多个客户端使用。客户端可以增删查改,尽可能得在最短的时间内使所有客户端数据一致。
1.方案一
给每一条数据加入时间戳这一字段,通过时间戳判断哪一条数据是最新的。同步时取客户端最大的时间戳,对比服务器上比这个时间戳新的,下载下来。但是有一个问题就是在极限情况下时间戳可能相等,那么判断时间戳大于请求时间戳时,将会漏掉时间戳相等的数据。因此想到以uid作为辅助。下面是实现的逻辑。
一.下载同步逻辑
1.初始化同步参数:
获取本地数据库中的最大时间戳Maxtime。
UID = 0;同步条数count=10.
2.循环:
2.1 参数为时间戳time,UID,count。进行请求数据。
*服务器根据参数取数据 @参加服务器取数据逻辑。
2.2 保存解析处理数据。(使用唯一标识替换保存,非uid)
保存逻辑为:时间戳和数据id都一样时跳过,时间戳不一样数据id一样时修改,数据id不存在时增加。(数据id指员工id等)
2.3 判断UID=