我們項(xiàng)目有這么一個(gè)功能,前端IOS和服務(wù)器同步最新的學(xué)生數(shù)據(jù),其設(shè)計(jì)方式是這樣的:該同步接口有一個(gè)可選入?yún)?,為時(shí)間戳。一開(kāi)始,IOS發(fā)起請(qǐng)求時(shí)不傳時(shí)間戳,服務(wù)器返回所有學(xué)生,并扔一個(gè)當(dāng)前時(shí)間戳給IOS。IOS記住這個(gè)時(shí)間戳,接下來(lái)在下次同步的時(shí)候,拿這個(gè)時(shí)間戳T給服務(wù)器,服務(wù)器里找到更新時(shí)間大于這個(gè)時(shí)間戳T的學(xué)生數(shù)據(jù)給IOS。如此往復(fù)。這種方案漏洞在一些并發(fā)場(chǎng)景下極易報(bào)錯(cuò),如用時(shí)間戳T請(qǐng)求學(xué)生數(shù)據(jù)的時(shí)候,另外有地兒并發(fā)插入學(xué)生數(shù)據(jù),這個(gè)插入的學(xué)生數(shù)據(jù),IOS可能拿不到。我現(xiàn)在也還沒(méi)想到要如何改進(jìn),會(huì)更合適。大家工作中有遇到類(lèi)似的場(chǎng)景嗎,是如何處理的?謝謝。
同步數(shù)據(jù)API的設(shè)計(jì)?
開(kāi)滿(mǎn)天機(jī)
2019-05-25 16:49:44