我正在尝试在作业中迭代更新表行。以下是代码示例
class UpdateTableJob < ApplicationJob
def perform(arg1, arg2)
User.each do |person|
person.update_attributes(:name => "test")
sleep 25
end
end
end
假设我有100个用户,并且只有在100个用户的迭代完成后,我才能看到更改被提交给db。但是我怎样才能在每次更新时都做到这一点?
答案 0 :(得分:1)
明确创建一个事务,以便控制边界。
class UpdateTableJob < ApplicationJob
def perform(arg1, arg2)
User.each do |person|
User.transaction do
person.update_attributes(:name => "test")
sleep 25
end
end
end
end