如何在 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,但如果这是一次性任务,你还有其他可能的替代方法,例如使用后台作业。如果它是重复性任务或视图的结果,您可能需要遵循不同的方法,例如分页。