From 4a32ea33324530b3cab6fdaf5ae4bfa3f411442d Mon Sep 17 00:00:00 2001 From: rebuilt Date: Sat, 20 Aug 2022 22:01:24 -0700 Subject: [PATCH] Reduce memory use in race score loader --- app/services/race_score_loader.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/services/race_score_loader.rb b/app/services/race_score_loader.rb index d2b6d18c..408bbca6 100644 --- a/app/services/race_score_loader.rb +++ b/app/services/race_score_loader.rb @@ -2,14 +2,19 @@ class RaceScoreLoader def self.reset(schools: School.all, academic_years: AcademicYear.all, measures: Measure.all, races: Race.all) RaceScore.where(school: schools, academic_year: academic_years, measure: measures, race: races).delete_all measures.each do |measure| - loadable_race_scores = schools.map do |school| - academic_years.map do |academic_year| + schools.each do |school| + loadable_race_scores = [] + loadable_race_scores = academic_years.map do |academic_year| races.map do |race| process_score(measure:, school:, academic_year:, race:) end end + RaceScore.import(loadable_race_scores.flatten.compact, batch_size: 1_000, on_duplicate_key_update: :all) + @grouped_responses = nil + @total_responses = nil + @response_rate = nil + @sufficient_responses = nil end - RaceScore.import(loadable_race_scores.flatten.compact, batch_size: 1_000, on_duplicate_key_update: :all) end end