これを実行し、OSX アクティビティ モニターで Ruby プロセスのメモリ消費を監視すると、メモリは約 3 MB/秒で増加します。
トランザクションを削除すると、メモリ消費量は約半分になりますが、メモリ フットプリントは増え続けます。本番アプリで、メモリ消費が原因で Heroku がプロセスを強制終了するという問題があります。
メモリを増やさない方法で以下を行う方法はありますか? 行をコメントアウトして.save
も問題ありませんが、もちろんこれは解決策ではありません。
ActiveRecord::Base.transaction do
10000000.times do |time|
puts "---- #{time} ----"
a = Activity.new(:name => "#{time} Activity")
a.save!(:validate => false)
a = nil
end
end
を使用してこれを実行していdelayed_job
ます。