mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-09 07:28:41 -07:00
Use less memory when loading race scores
This commit is contained in:
parent
54ea1a1070
commit
58f5b01471
3 changed files with 34 additions and 35 deletions
|
|
@ -1,27 +1,24 @@
|
|||
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
|
||||
scores = []
|
||||
measures.each do |measure|
|
||||
schools.each do |school|
|
||||
academic_years.each do |academic_year|
|
||||
races.each do |race|
|
||||
scores << process_score(measure:, school:, academic_year:, race:)
|
||||
process_score(measure:, school:, academic_year:, race:)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
RaceScore.import scores, batch_size: 1000
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.process_score(measure:, school:, academic_year:, race:)
|
||||
score = RaceScoreCalculator.new(measure:, school:, academic_year:, race:).score
|
||||
rs = RaceScore.new(measure:, school:, academic_year:, race:)
|
||||
rs = RaceScore.find_or_create_by(measure:, school:, academic_year:, race:)
|
||||
rs.average = score.average
|
||||
rs.meets_student_threshold = score.meets_student_threshold?
|
||||
rs
|
||||
rs.save
|
||||
end
|
||||
|
||||
private_class_method :process_score
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue