請教下 lockForUpdate () 的問題

huangfsd發表於2020-06-16

情況

在迴圈執行更新資料的場景下:
table A
data a
data b
data c
data d
…..

這時候取出一條資料(data a)執行資料更新,比如要執行10s。
而2s後,指令碼再次觸發執行,這時候,還是取出了data a,又被執行了,造成資源浪費。

問題

所以我想,能不能從資料庫層面限制掉這種重複取data a的情況,
table A
data a 上鎖處理data a
data b
data c
data d
…..
這時候指令碼執行只能取出data b,而我在事務裡使用lockForUpdate(),指令碼在再次執行的時候,會產生阻塞,導致超時。
請教大佬們,有辦法解決這個問題嗎?
PS:快取肯定可行,只是想在資料庫層面限制掉

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章