Class: ReviewAvatarBackfillWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Status::Worker, Sidekiq::Worker
Defined in:
app/workers/review_avatar_backfill_worker.rb

Overview

Generates and auto-imports AI avatar images for tagged ReviewsIo records
that have no avatar yet.

Production: scheduled nightly (2:15 AM CT) via +review_avatar_backfill_worker+ in
+config/sidekiq_production_schedule.yml+.

Follows the single-worker dual-mode pattern:

ReviewAvatarBackfillWorker.perform_async # bulk: enqueues one job per review
ReviewAvatarBackfillWorker.perform_async(review_id) # single: generates avatar for that review

Bulk mode is safe to run repeatedly — it skips reviews that already have
an avatar_image_id or that already have a pending GeneratedImage in flight.

The worker uses ImageGenerationWorker under the hood with auto_import: true,
so the generated image is promoted to the library and the review's
avatar_image_id is assigned automatically — no manual import step needed.

Instance Method Summary collapse

Instance Method Details

#perform(review_id = nil) ⇒ Object

Parameters:

  • review_id (Integer, nil) (defaults to: nil)


27
28
29
30
31
32
33
# File 'app/workers/review_avatar_backfill_worker.rb', line 27

def perform(review_id = nil)
  if review_id.nil?
    bulk_enqueue
  else
    process_review(review_id)
  end
end