为了账号安全,请及时绑定邮箱和手机立即绑定

用户离线时产生了N多条操作记录,然后上传到了云端,请问如何把它们合并成数据最后的状态?

用户离线时产生了N多条操作记录,然后上传到了云端,请问如何把它们合并成数据最后的状态?

紫衣仙女 2019-02-22 22:19:58
如题,我们是一款可以本地阅读图书的应用。用户可以针对一本书进行笔记操作,具体而言,主要讲就是“增删改查”笔记。我们是支持离线使用的,为了保证数据同步,用户离线使用时的“每一个操作”都会生成一条usageRecord,有点像log吧。比如用户离线时,先增加一条笔记,我们会记录{noteId:a-guid-string,operation:add,time:123123123}然后用户又更新了一下这条笔记,我们就会记录:{noteId:a-guid-string,operation:update,time:123123123}最后用户又删除了这条笔记,我们就会记录:{noteId:a-guid-string,operation:delete,time:123123123}当用户联网之后,客户端就会把上述3条数据都传到服务器端,让服务期存到数据库。但是存之前,需要先把数据整理成最终的样子,请问有什么好的解决方案可以参考吗?PS:也可以在客户端完成数据的处理,然后上传到服务期端。
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

联网情况下,这些不是同步处理的么?

现在有个想法:

离线之后,再联网的操作,就相当于把之前这段时间的操作再回放一下,
那么可否把这些请求暂存进一个客户端的任务队列,联网的时候,再去消费这个队列?


查看完整回答
反对 回复 2019-02-25
?
弑天下

TA贡献1818条经验 获得超8个赞

对于任意数据: 不是所有数据都一定能合并 ("最终一致")。比如dropbox在有冲突的时候是直接给你复制一份,让你自己解决。

只有文本的时候相对好些,但能合并也需要不弱的条件。无法合并时让人类 (你的用户) 处理可能比较好。


查看完整回答
反对 回复 2019-02-25
  • 2 回答
  • 0 关注
  • 655 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信