紫衣仙女
2019-02-22 22:19:58
如題,我們是一款可以本地閱讀圖書(shū)的應(yīng)用。用戶(hù)可以針對(duì)一本書(shū)進(jìn)行筆記操作,具體而言,主要講就是“增刪改查”筆記。我們是支持離線使用的,為了保證數(shù)據(jù)同步,用戶(hù)離線使用時(shí)的“每一個(gè)操作”都會(huì)生成一條usageRecord,有點(diǎn)像log吧。比如用戶(hù)離線時(shí),先增加一條筆記,我們會(huì)記錄{noteId:a-guid-string,operation:add,time:123123123}然后用戶(hù)又更新了一下這條筆記,我們就會(huì)記錄:{noteId:a-guid-string,operation:update,time:123123123}最后用戶(hù)又刪除了這條筆記,我們就會(huì)記錄:{noteId:a-guid-string,operation:delete,time:123123123}當(dāng)用戶(hù)聯(lián)網(wǎng)之后,客戶(hù)端就會(huì)把上述3條數(shù)據(jù)都傳到服務(wù)器端,讓服務(wù)期存到數(shù)據(jù)庫(kù)。但是存之前,需要先把數(shù)據(jù)整理成最終的樣子,請(qǐng)問(wèn)有什么好的解決方案可以參考嗎?PS:也可以在客戶(hù)端完成數(shù)據(jù)的處理,然后上傳到服務(wù)期端。
2 回答

倚天杖
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
聯(lián)網(wǎng)情況下,這些不是同步處理的么?
現(xiàn)在有個(gè)想法:
離線之后,再聯(lián)網(wǎng)的操作,就相當(dāng)于把之前這段時(shí)間的操作再回放一下,
那么可否把這些請(qǐng)求暫存進(jìn)一個(gè)客戶(hù)端的任務(wù)隊(duì)列,聯(lián)網(wǎng)的時(shí)候,再去消費(fèi)這個(gè)隊(duì)列?

弒天下
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
對(duì)于任意數(shù)據(jù): 不是所有數(shù)據(jù)都一定能合并 ("最終一致")。比如dropbox在有沖突的時(shí)候是直接給你復(fù)制一份,讓你自己解決。
只有文本的時(shí)候相對(duì)好些,但能合并也需要不弱的條件。無(wú)法合并時(shí)讓人類(lèi) (你的用戶(hù)) 處理可能比較好。
添加回答
舉報(bào)
0/150
提交
取消