2

sidekiq/activejob統合に問題があります。perform_laterMyJob クラスからメソッドを呼び出すコントローラーがあります。これはperformメソッドで機能しますが、に変更するperfom_laterと、開発ログにジョブがスケジュールされます。ただし、sidekiq ダッシュボードの再試行セクションを見るとわかりますNameError: uninitialized constant(下の画像を見てください)。

画像

これらは私のファイルです:

# app/jobs/crime_job.rb
class CrimeJob < ActiveJob::Base
  queue_as :default

  def perform(crime)
    puts "Perform #{crime}"
  end

  def self.job_name(crime)
    "RadarCrime:#{crime.id}"
  end 
end

犯罪取締官

# app/controllers/crime_controller.rb
def show
  # [...]
  CrimeJob.perform_later(@crime)
end

Sidekiq イニシャライザ

# config/initializers/active_job.rb
Rails.application.config.active_job.queue_adapter = :sidekiq
4

1 に答える 1