我需要在其中从db返回记录然后更新它以便下次不返回相同的记录。这是制作实时队列所必需的。 我面临的问题是我的动作在同一时刻发生了多次通话。因此,相同的记录将返回给多个用户。 我试过用锁!函数,但它放置一个写锁,而不是读锁。 请提出一些实现此目的的方法。
答案 0 :(得分:0)
尝试通过创建迁移数据库来添加新列,使用类型为布尔值的默认值为read_locked
,默认为false(仅保持简单)
def change
add_column :your_table_name, :read_locked, :boolean, default: false
end
然后在Model
上使用默认范围default_scope where(:read_locked => false)
下次要锁定某些记录时,您只需将read_locked
值更改为true
model_object.read_locked = true
model_object.save
read_locked之后的所有请求都将被转义
希望这有帮助