diff --git a/app/jobs/scheduled/backfill_dominant_colors.rb b/app/jobs/scheduled/backfill_dominant_colors.rb new file mode 100644 index 00000000000..a0e3c733dfc --- /dev/null +++ b/app/jobs/scheduled/backfill_dominant_colors.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Jobs + class BackfillDominantColors < ::Jobs::Scheduled + every 15.minutes + + def execute(args) + Upload.backfill_dominant_colors!(25) + end + end +end diff --git a/app/jobs/scheduled/periodical_updates.rb b/app/jobs/scheduled/periodical_updates.rb index 01649de0627..5c5da8bac6b 100644 --- a/app/jobs/scheduled/periodical_updates.rb +++ b/app/jobs/scheduled/periodical_updates.rb @@ -48,8 +48,6 @@ module Jobs Category.auto_bump_topic! - Upload.backfill_dominant_colors!(25) - nil end diff --git a/spec/models/upload_spec.rb b/spec/models/upload_spec.rb index 92d329303c0..a2441540ccc 100644 --- a/spec/models/upload_spec.rb +++ b/spec/models/upload_spec.rb @@ -666,6 +666,19 @@ RSpec.describe Upload do expect(red_image.dominant_color).to eq("FF0000") end + it "is backfilled by the job" do + expect(white_image.dominant_color).to eq(nil) + expect(red_image.dominant_color).to eq(nil) + + Jobs::BackfillDominantColors.new.execute({}) + + white_image.reload + red_image.reload + + expect(white_image.dominant_color).to eq("FFFFFF") + expect(red_image.dominant_color).to eq("FF0000") + end + it "stores an empty string for non-image uploads" do expect(not_an_image.dominant_color).to eq(nil) expect(not_an_image.dominant_color(calculate_if_missing: true)).to eq("")