我有一个ruby on rails应用程序,有很多sidekiq工作人员有些工人可以工作一段时间(至少几分钟)。
如何阻止来自其他位置(即控制器)的更改记录,以避免在工作进程中保存此记录时发生数据冲突?

最佳答案

您需要锁定模型:

account = Account.first

account.with_lock do
  # This block is called within a transaction,
  # account is already locked.
  account.balance -= 100
  account.save!
end

你可以阅读更多关于它的here

关于ruby-on-rails - rails阻止代码中的其他位置更改记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30951396/

10-11 01:46
查看更多