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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...