如何在 Rails rake 任务中 运行 一个大循环?
How to run a big loop in a Rails rake task?
我在 Rails rake 任务的 Ruby 中有一个类似下面的循环。
Account.all.each do |a|
问题是有1000万条记录,内存不受控制地上升。我如何将其分割成 运行 一个大循环?
您可以使用 find_each
批量加载记录。
另一种方法是只加载 IDs
然后获取每条记录一次。
我不知道你在做什么需要加载整个帐户 table,但如果这是一次性任务,你还有其他可能的替代方法,例如使用后台作业。如果它是重复性任务或视图的结果,您可能需要遵循不同的方法,例如分页。
我在 Rails rake 任务的 Ruby 中有一个类似下面的循环。
Account.all.each do |a|
问题是有1000万条记录,内存不受控制地上升。我如何将其分割成 运行 一个大循环?
您可以使用 find_each
批量加载记录。
另一种方法是只加载 IDs
然后获取每条记录一次。
我不知道你在做什么需要加载整个帐户 table,但如果这是一次性任务,你还有其他可能的替代方法,例如使用后台作业。如果它是重复性任务或视图的结果,您可能需要遵循不同的方法,例如分页。