0

次のような RoR アプリと cron rake-task があります。

Model.all.each do |m|
  if m < some_condition
    m.do_something
    m.save
  end
end

Model1 000 000 件のレコードがあります (許容条件の場合は 200 000 件)。タスクのメモリ使用量を改善する方法はありますか? ギガバイトのメモリが必要であり、Ruby プロセスは本番環境のサーバーによって強制終了されます。私のDBはPostgreSQLです。

4

3 に答える 3

2

#find_eachや などのメソッドを使用する必要があり#find_in_batchesます。これらは、一度にごく一部のレコードのみをロードします。ActiveRecord::Batchesを見てください。

于 2013-02-14T15:17:51.430 に答える