作者:jiazi--- | 来源:互联网 | 2023-09-06 12:00
情况在循环执行更新数据的场景下:tableAdataadatabdatacdatad…..这时候取出一条数据(dataa)执行数据更新,比如要执行10s。而2s后,脚本再次触发执行
情况
在循环执行更新数据的场景下:
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:缓存肯定可行,只是想在数据库层面限制掉
laravel
lockForUpdate