class GenerateCoverSlateJob < ApplicationJob queue_as :default def self.enqueue_for(record) return unless record&.cover_image&.attached? queue = record.is_a?(Match) ? :critical : :default set(queue: queue).perform_later(record.class.name, record.id) end def perform(class_name, record_id) record = class_name.constantize.find_by(id: record_id) return unless record&.cover_image&.attached? Streams::GenerateCoverSlate.call(record) rescue Streams::GenerateCoverSlate::Error => e Rails.logger.warn("[GenerateCoverSlateJob] #{class_name}##{record_id} #{e.message}") end end