顺序执行动作轨道

时间:2017-04-08 04:27:19

标签: ruby-on-rails sequential

我需要在其中从db返回记录然后更新它以便下次不返回相同的记录。这是制作实时队列所必需的。 我面临的问题是我的动作在同一时刻发生了多次通话。因此,相同的记录将返回给多个用户。 我试过用锁!函数,但它放置一个写锁,而不是读锁。 请提出一些实现此目的的方法。

1 个答案:

答案 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之后的所有请求都将被转义

希望这有帮助