下面是我们使用 rails 3.1.6 在 mysql 5.5 上执行的代码
Model.transaction do
model.events.destroy_all
2.times { model.events.create!(some_body) }
end
期望在模型下总是有两个且只有两个事件对象。
当我在两个线程上运行这段代码时,我经常会得到四个事件对象。我希望两个线程都能序列化事务块内的代码执行。显然交易不是这样工作的。
做这种事情有共同的模式吗?
下面是我们使用 rails 3.1.6 在 mysql 5.5 上执行的代码
Model.transaction do
model.events.destroy_all
2.times { model.events.create!(some_body) }
end
期望在模型下总是有两个且只有两个事件对象。
当我在两个线程上运行这段代码时,我经常会得到四个事件对象。我希望两个线程都能序列化事务块内的代码执行。显然交易不是这样工作的。
做这种事情有共同的模式吗?