Rails 3,锁定拍卖类型引擎上的表格
我正在Rails 3中构建类似拍卖的系统(使用PostgreSQL作为数据库)。
想象一下,你有一个产品。 产品有很多出价。
我担心当两个不同的用户同时点击“出价”时会发生什么(假设我至少有2个应用服务器,并且他们同时点击服务器)。 我有两个可接受的行为:
- 其中一个“胜利”,另一个收到错误消息
- 其中一个“胜利”,另一个出价是下一个(每个出价加上0.01欧元的价格)。 因此,重复所有并发出价直到创建
所以我的问题是:如何在Rails 3上处理这个问题? 我认为使用常规交易还不够,或者是这样吗?
Rails 悲观锁定应该可以让你实现你想要的。 据我所知,这将让您处理将更新排序到数据库而不会抛出错误的问题。
这是一个线程,可以更好地解释两种不同类型的锁定: 乐观与悲观锁定