商城新客多領取優惠券問題

2021-08-16 16:03:01 字數 1097 閱讀 6526

背景

年前開發的問題,總結一下:

使用者在**頁面領取新客券,領過的使用者不能再次領取,整個新使用者領券邏輯如下:

step 1: 驗證商家是否登入、是否是老使用者(r)

step 2: 驗證該商家是否領取過新客券(查詢該商家擁有的優惠券是否含有新客券)(r)

step 3: 領取新客券(w)

step 4: 修改優惠券統計資訊(w)

step 5: 返回該商家剛剛領取的新客券(查詢介面同step 2)(r)

坑一:線上出現同乙個使用者領取多套優惠券情況

解決辦法

增加分布式鎖,使用 redis 快取,大致**如下:

// @transaction

step 1: 驗證商家是否登入、是否是老使用者(r)

try step 2: 驗證該商家是否領取過新客券(查詢該商家擁有的優惠券是否含有新客券)(r)

step 3: 領取新客券(w)

step 4: 修改優惠券統計資訊(w)

step 5: 返回該商家剛剛領取的新客券(查詢介面同step 2)(r)

} finally

坑二:加鎖後仍然出現乙個使用者領取多套優惠券情況

解決辦法

// @transaction

step 1: 驗證商家是否登入、是否是老使用者(r)

if(!lock.lock())

try finally

需要遵守:

lock.lock();

tryfinally

坑三:主從庫延時可能導致使用者領取新客券出現問題

解決辦法

強制該事務中的sql(包括讀和寫操作)都走主庫

騰訊雲優惠券領取 騰訊雲代金券免費領取

伴隨著各個行業的快速發展,很多企業開始將目光放在 雲端 這意味著在網路時代風雲變幻的複雜環境下,企業在運營 統籌以及運籌帷幄等多項領域內,能夠更快 更準 更好地把握數位化經濟所帶來的紅利。在這其中,騰訊雲作為國內頭部雲服務品牌之一,正在競爭日益激烈的公有雲服務市場中縱橫馳騁!2019 年,當國內公有...

優惠券收集人問題

它是乙個經典的統計問題,有很多實際應用。這個問題從一套物件中拿出乙個物件,然後找到要將所有需要拿的物件都至少拿出來一次,需要拿多少次。為了敘述方便,以撲克牌為例。一副打亂的52張撲克牌,找出在看到每種花色都有一張出現前,需要選多少次。編寫程式,模擬要得到四張不同花色的牌所需要的選取次數,然後顯示選中...

全自動領取天貓雙11優惠券教程!

雙十一爆款清單 天貓爆款清單 天貓雙11爆款清單 自動領取天貓雙11優惠券教程!第一步 開啟2015年天貓雙十一領券頁面 記住一定要先 登入 記住一定要先 登入 記住一定要先 登入 console.log 領取 第 index 張 settimeout getcoupon,interval sett...