Reduce memory use in race score loader

pull/1/head
rebuilt 3 years ago
parent e4dba195ac
commit 4a32ea3332

@ -2,14 +2,19 @@ class RaceScoreLoader
def self.reset(schools: School.all, academic_years: AcademicYear.all, measures: Measure.all, races: Race.all) 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 RaceScore.where(school: schools, academic_year: academic_years, measure: measures, race: races).delete_all
measures.each do |measure| measures.each do |measure|
loadable_race_scores = schools.map do |school| schools.each do |school|
academic_years.map do |academic_year| loadable_race_scores = []
loadable_race_scores = academic_years.map do |academic_year|
races.map do |race| races.map do |race|
process_score(measure:, school:, academic_year:, race:) process_score(measure:, school:, academic_year:, race:)
end end
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 end
RaceScore.import(loadable_race_scores.flatten.compact, batch_size: 1_000, on_duplicate_key_update: :all)
end end
end end

Loading…
Cancel
Save