ruby轨道 – 什么时候在轨道上发布悲观的锁?

前端之家收集整理的这篇文章主要介绍了ruby轨道 – 什么时候在轨道上发布悲观的锁?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我正在做这样的事情(从 Active Record Querying guide)
Item.transaction do  
  i = Item.first(:lock => true)  
  i.name = 'Jones'  
  i.save 
end

锁是否在交易结束时自动释放?我查看了Active Query指南和ActiveRecord::Locking::Pessimistic docs,并且找不到在哪里明确说明锁的释放位置.

解决方法

锁定不是rails的功能,它只是将lock语句添加查询中,这取决于您正在使用的数据库.悲观锁定采取“悲观”观点,认为每个查询都会受到腐败.所以它将锁定数据库,直到你完成交易.所以锁>查询>开锁.虽然这些数据库数据库相当一致,但您可能需要阅读数据库文档,这些文档用于您应该知道的任何特定于数据库内容.

这是一个很好的线索,乐观与悲观的锁定,解释它比我可以更好. Optimistic vs. Pessimistic locking

原文链接:https://www.f2er.com/ruby/270958.html

猜你在找的Ruby相关文章