NameError:未初始化的常量MyJob ActiveJob和Sidekiq

时间:2015-03-01 01:50:04

标签: ruby-on-rails sidekiq rails-activejob

我遇到sidekiq/activejob集成问题。我有一个控制器从MyJob类调用perform_later方法。这适用于perform方法,但当我更改为perfom_later时,作业将在我的开发日志中进行安排。但是,当我看到sidekiq仪表板时,在重试部分,我可以看到NameError: uninitialized constant(见下图)

image

这些是我的文件:

# 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

1 个答案:

答案 0 :(得分:3)

好吧,我也在Sidekiq存储库中打开了一个问题,解决方案比我想象的要容易。

只需重启sidekiq进程即可。

问题链接:https://github.com/mperham/sidekiq/issues/2207