如果我必须更新 50,000 个用户,我将如何以最适合后台处理库而不是 N+1 问题的方式进行?
我有用户、会员和积分。
会员资格与总分值有关。如果使用点值修改成员资格,我必须遍历所有用户以更新其正确的成员资格。这是我需要排队的,这样服务器就不会挂起 30 多分钟。
现在我有一个控制器动作
def update_memberberships
User.find_each do |user|
user.update_membership_level! # looks for a Membership defined by x points and assigns it to user. Then Saves the user.
end
end
这是一个非常昂贵的操作。我将如何优化处理和后台,以使帖子在表单中几乎是瞬时的?