iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
自我挑戰組

日常任務成長紀錄系列 第 29

[心得]資料異動行為,需要有意識的風險管理

  • 分享至 

  • xImage
  •  

紀錄一下最近遇到的問題

一支異動訂單的API ,稱作 Patch Order,在一秒內被打了兩次,造成資料產生非預期的變化,例如 訂單金額 10,假設這是一個給折扣的動作(-5),原本預期 10 -5 ,但最後是 10 - 5 - 5 =0 ,天上掉下的禮物~

針對這件事,我得到以下心得

  1. 任何資料異動API 應當把並發、短時間多req 的情境考慮進去,並思考後續影響
  2. 若影響幾乎沒有,那麼可以不用作太多措施
  3. 若影響會造成困擾,則應該採取手段(ex. redisLock , 樂觀鎖 ..)
  4. 若使用 typeOrm 因當謹慎使用 save() ,盡可能搭配 find() 使用,作為資料驗證使用

上一篇
TypeScript | namespace 心得紀錄
下一篇
快取機制 心得紀錄
系列文
日常任務成長紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言