如何在Rails rake任务中运行一个大循环?

时间:2015-09-17 17:30:48

标签: ruby-on-rails-4 rails-migrations rake-task

我在Ruby on Rails rake任务中有一个类似下面的循环。

Account.all.each do |a|

问题是有1000万条记录,内存无法控制地上升。我怎么能把它分段来运行一个大循环呢?

1 个答案:

答案 0 :(得分:1)

您可以使用批量加载记录的find_each

另一种方法是只加载IDs,然后获取每个记录一次。

我不知道你在做什么需要加载你的整个帐户表,但如果它是一次性任务你有其他可能的选择,比如使用后台工作。如果它是一个重复的任务或视图的结果,您可能需要遵循不同的方法,如分页。