兩個疑問
一。
我在復盤老師的改造思路:
從redis扣減庫存和異步處理是同一個事務,是在另一個事務下面,如果扣減外的事務失敗,會出現的問題:如果這之前出現異常不會有問題,但如果扣減庫存之後的操作異常如下訂單時,這時就扣減多了,因爲redis和mq此時不被事務所控制。
改造:把從redis中扣減和發送消息分開,將發送消息放在訂單之後,如果扣減成功之後,發送消息本身發生異常,再把庫存加回來。
我的疑問是:
redis扣減庫存成功后,發送異步消息之前,如果銷量入庫發生異常,redis不加1嗎,我看代碼裏這部分沒有用try捕獲異常
如果下面圈内部分發生異常,只是回滾數據庫了,redis沒有加回來,是否應該先用try包住加回來在抛
二。
扣減庫存這裏只涉及redis了,還有必要jia@Transactional事務注解嗎
感謝老師答疑解惑。