【发布时间】:2015-06-05 03:18:27
【问题描述】:
如果两个或多个用户使用 Jruby 同时单击保存,我如何将数据保存在同一张表上? 这是我已经尝试过的代码
Sequence.transaction do
sq = Sequence.find_by_sequence_key('bus20158001', :lock => true)
sq.values = sq.values + 1
sq.save
end
以上代码由于某些原因无法正常工作 序列是我的模型,它的字段是 (id, sequence_key, values, created_at, updated_at)
【问题讨论】:
-
请不要在标题中对我们大喊大叫。
-
当您在 Ruby 中增加
values时,您想避免竞争条件吗? -
比如我的序列值是40,然后两个用户同时保存,user1的值变成了41,然后user2的值还是41,应该是42。
标签: ruby-on-rails ruby concurrency jruby simultaneous