1.有這樣兌獎的活動,【活動1】小票滿指定金額換獎品,【活動2】買飲料,瓶蓋暗碼兌獎
第一步,【校驗按鈕】拍身份證,獲取身份證資訊;輸入小票號或輸入暗碼,校驗是否被使用過(查詢是否存在記錄);暗碼是否有效(提前初始化到暗碼表)
第二步,【確認按鈕】第一步校驗通過,新增兌獎記錄,更新暗碼狀態。
風險點是小票號或暗碼是否會被重複使用,類似併發問題
同乙個小票或者暗碼,兩個人同時操作,第一步都校驗通過了(無記錄),再去確認操作,可能導致,小票或暗碼被重複使用,正常新增了記錄,更新了暗碼狀態
新增時記錄表加唯一索引(小票號),更新狀態加樂觀鎖(暗碼)
這樣就算第一步校驗都通過了,新增小票記錄時,可捕獲唯一索引異常,拋異常,提示小票已被使用,更新暗碼狀態條件是原始狀態是0有效才更新,判斷返回值是否為1,是更新成功,否,暗碼已被更新,提示暗碼已被使用。
拓展方案:加redis分布式鎖
1.新增或者修改,有必要判斷返回值是否為1,說明是否成功嗎?
新增:什麼場景下會不等1,失敗的情況,新增時如果加了唯一索引,直接拋異常,判斷是否為1沒意義,不知道是否存在其他場景新增失敗
修改:加了樂觀鎖,必須要判斷是否等於1,來給出提示。
2.大數量新增或批量更新怎麼處理
新增:分批操作,捕獲異常,列印error日誌,或者寫入錯誤日誌表
修改:列印error日誌,或者寫入錯誤日誌表
關於奇偶校驗的幾個定義以及正確認識
奇偶校驗的情況分為五種,其中常見的校驗方式有以下三種 無校驗 no parity 即不進行奇偶校驗 奇校驗 odd parity 如果字元資料位中1的個數為偶數時,該校驗位置1,此時整個字元資料中1的個數便為奇數個,如果1的個數為偶數,則校驗位置0。偶校驗 even parity 如果字元資料位中1...
關於資料校驗
1.什麼是資料校驗 通俗的說,就是為保證資料的完整性,用一種指定的演算法對原始資料計算出的乙個校驗值。接收方用同樣的演算法計算一次校驗值,如果和隨資料提供的校驗值一樣,就說明資料是完整的。2.最簡單的檢驗 實現方法 最簡單的校驗就是把原始資料和待比較資料直接進行比較,看是否完全一樣這種方法是最安全最...
關於CRC校驗
一 什麼是crc校驗 crc即迴圈冗餘校驗碼,是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。二 crc的...