如何處理數(shù)據(jù)沖突后的臟數(shù)據(jù)

故事起因:多人同時操作一個工作單據(jù),保存時間有先后,后保存的數(shù)據(jù)覆蓋了前面保存的數(shù)據(jù)绳矩。網(wǎng)上找到文章都是講并發(fā)處理的原理,沒人提到數(shù)據(jù)丟失后的處理玖翅。

這是個真實的案例翼馆,對于數(shù)據(jù)量很少的單據(jù)可以隨時丟棄臟數(shù)據(jù),但是如果是軟件管理系統(tǒng)里含有大量數(shù)據(jù)的表單金度,直接丟棄就不好了应媚。見下圖

貨代海運信息錄入資料圖

舉例說明,我們在給一個供應(yīng)鏈客戶做的一張工作單猜极,里面涉及的服務(wù)同時有兩種(海運和陸運)中姜,其中:

?1. 安排海運工作的文員A記錄海運的信息;

?2. 安排陸運工作的文員B記錄陸運的信息;

但是非常不幸的是,兩人幾乎在同一時間段打開了同一張工作單據(jù)跟伏,分別錄入自己負(fù)責(zé)的信息丢胚,然后保存(A在前,B在后)受扳,之后A在查看單據(jù)的時候就叫起來了:天啦携龟,我辛辛苦苦的數(shù)據(jù)不見了!

聰明的你一定想到了勘高,文員B在打開工作單輸入“陸運信息時峡蟋,“海運”信息全是空的,最后保存時把A的數(shù)據(jù)給覆蓋了(導(dǎo)致A的“海運”數(shù)據(jù)不見了)华望,原理圖如下:


A和B打開單據(jù)時层亿,數(shù)據(jù)是一樣的

你也許會嗤之以鼻:切,不就是并發(fā)沒處理好立美,導(dǎo)致數(shù)據(jù)覆蓋么匿又。這點小問題,秒秒鐘搞定的事建蹄。

這種典型的數(shù)據(jù)并發(fā)操作問題碌更,技術(shù)上的解決方案也是一搜一大把,歸結(jié)為兩種:

1. 悲觀鎖:任何一個人打開編輯此單據(jù)洞慎,標(biāo)記為鎖住痛单,其它人等不得打開編輯,直至它被解鎖劲腿。

2. 樂觀鎖:任何人都可以打開單據(jù)旭绒,可以編輯,保存時通過版本號校驗,不通過者視為臟數(shù)據(jù)挥吵,提示數(shù)據(jù)已更新重父,不能保存。

鑒于我們的項目是基于WEB的忽匈,第一種直接否掉了房午,第二種實現(xiàn)起來,代碼也不難丹允。

我把以上的技術(shù)一分析郭厌,給她們回復(fù):“我們有了解決方案,誰先保存誰贏雕蔽,后面才保存的同學(xué)折柠,系統(tǒng)說你來晚了,不好意思批狐,你的數(shù)據(jù)要重新錄咯”液走。So easy,小問題嘛贾陷,很容易解決滴缘眶。

-------------------- 劇情反轉(zhuǎn)的分割線------------------?

可沒料到,文員A跳起來對我們說:“ 你們的系統(tǒng)就是狗屎髓废!我花了半個小時辛辛苦苦輸入的幾十個數(shù)據(jù)巷懈,因為我保存晚了,說沒了就沒了慌洪,你TM在逗我顶燕?!”冈爹。

咦涌攻?我感覺到被妥妥的打臉了,想想人家說得很有道理频伤。數(shù)據(jù)錄入多的人恳谎,需要的時間也更長,保存的時間當(dāng)然會靠后憋肖,按我的處理方法因痛,吃虧的是最辛苦的人。原理圖如下:

好吧岸更,我道歉鸵膏,我再想想辦法。

And怎炊, 作為一個伸手黨谭企,我開始在百度上找相關(guān)的處理方法廓译,嘗試了無數(shù)關(guān)鍵字去查找,講數(shù)據(jù)庫并發(fā)沖突原理的有一堆文章债查,可是就是沒人考慮過數(shù)據(jù)丟失的人的感受非区,沒有人講如何處理臟數(shù)據(jù),沒有人攀操!

你們這些宅男IT狗(包括我霸悍隆)秸抚,你們不知道做運輸公司速和、貨代、報關(guān)企業(yè)里接單錄單的妹子是多么需要有人多為她們想想剥汤,如何才能高效錄入單據(jù)和節(jié)約時間的么颠放?

在和組里小伙伴經(jīng)過激烈的討論后,最終采取的方案是:

把用戶輸入的臨時數(shù)據(jù)在刷新前先保存起來吭敢,刷新后在頁面提示其可以恢復(fù)之前的未保存的數(shù)據(jù)碰凶,有沖突的數(shù)據(jù)做提示。

技術(shù)實現(xiàn)

1. 如果后臺提示是版本號不一致的問題鹿驼,將用戶所填的數(shù)據(jù)保存到瀏覽器 localstorage欲低;

2. 刷新頁面后,判斷當(dāng)前單據(jù)是否有緩存數(shù)據(jù)畜晰,如果有砾莱,則提示“你有未保存數(shù)據(jù),是否恢復(fù)凄鼻?”腊瑟;

3. 選擇“是”, 恢復(fù)數(shù)據(jù)到頁面中块蚌,并做沖突提示闰非,從localstorage刪除數(shù)據(jù)緩存;

4. 選擇“否”峭范,不恢復(fù)數(shù)據(jù)财松,從localstorage刪除數(shù)據(jù)緩存;

根據(jù)此做出方案纱控,錄單文員那邊表示這個功能棒棒噠游岳。喲吼,問題就此解決咯其徙。文員和IT狗又可以愉快的玩耍了胚迫,么么噠!

結(jié)論

即將丟失的臟數(shù)據(jù)也許花費了用戶大量的時間去錄入唾那,我覺得這個臟數(shù)據(jù)緩存處理非常重要和必要访锻,看情況多想想就會提供多些價值褪尝。IT開發(fā)人者要么是覺得過于簡單沒在意,要么是開發(fā)者沒有進一步想這個問題期犬,這是非常不好的河哑。我認(rèn)為每個人的時間和效率都是無比珍貴的龟虎,希望同學(xué)們不要浪費你的用戶的時間。

既然如何處理這個臟數(shù)據(jù)問題在網(wǎng)上沒人提到(或是我沒找到)鲤妥,那么我就把它記錄下來佳吞,以助后人棉安。

學(xué)海無涯,在學(xué)習(xí)的道路上贡耽,你并不孤單,希望本文可以幫助到相關(guān)的人蒲赂,我是物流IT人阱冶,劉宇,謝謝滥嘴,再見木蹬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氏涩,隨后出現(xiàn)的幾起案子届囚,更是在濱河造成了極大的恐慌,老刑警劉巖是尖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件意系,死亡現(xiàn)場離奇詭異,居然都是意外死亡饺汹,警方通過查閱死者的電腦和手機蛔添,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兜辞,“玉大人迎瞧,你說我怎么就攤上這事∫莩常” “怎么了凶硅?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扫皱。 經(jīng)常有香客問我足绅,道長捷绑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任氢妈,我火速辦了婚禮粹污,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘首量。我一直安慰自己壮吩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布加缘。 她就那樣靜靜地躺著鸭叙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪生百。 梳的紋絲不亂的頭發(fā)上递雀,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天柄延,我揣著相機與錄音蚀浆,去河邊找鬼。 笑死搜吧,一個胖子當(dāng)著我的面吹牛市俊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滤奈,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼摆昧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜒程?” 一聲冷哼從身側(cè)響起绅你,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤忌锯,失蹤者是張志新(化名)和其女友劉穎领炫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帝洪,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡葱峡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年砰奕,在試婚紗的時候發(fā)現(xiàn)自己被綠了泌参。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片常空。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡漓糙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昆禽,到底是詐尸還是另有隱情,我是刑警寧澤捡硅,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布壮韭,位于F島的核電站,受9級特大地震影響喷屋,放射性物質(zhì)發(fā)生泄漏瞭恰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一恶耽、第九天 我趴在偏房一處隱蔽的房頂上張望偷俭。 院中可真熱鬧,春花似錦社搅、人聲如沸乳规。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冻辩。三九已至拆祈,卻和暖如春倘感,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淤年。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工麸粮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弄诲。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓齐遵,卻偏偏與公主長得像视乐,于是被迫代替她去往敵國和親敢茁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容