Rails 3,锁定拍卖类型引擎上的表格

时间:2011-08-23 19:18:34

标签: ruby-on-rails database ruby-on-rails-3 activerecord transactions

我正在Rails 3中构建类似拍卖的系统(使用PostgreSQL作为数据库)。

想象一下你有一个产品。产品有很多投标。

我担心当两个不同的用户同时点击“出价”时会发生什么(假设我有至少2个应用服务器,并且他们同时点击服务器)。我有两种可接受的行为:

  • 其中一个“胜利”,另一个收到错误消息
  • 其中一个“获胜”,另一个出价是下一个(每个出价增加0.01欧元的价格)。因此,所有并发出价都会重复,直到创建

所以我的问题是:如何在Rails 3上处理这个问题?我认为使用常规交易还不够,或者是吗?

1 个答案:

答案 0 :(得分:3)

Rails pessimistic locking应该可以让你达到你想要的效果。据我所知,这将让您处理将更新排序到数据库而不会抛出错误的问题。

这是一个线程,可以更好地解释两种不同类型的锁定:Optimistic vs. Pessimistic locking