【发布时间】:2015-05-01 14:08:58
【问题描述】:
sidekiq/activejob 集成有问题。我有一个控制器,它从 MyJob 类中调用 perform_later 方法。这适用于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
【问题讨论】:
-
你能给我们看看完整的跟踪吗?此外,您似乎还没有在
CrimeJob类中定义perform_later方法 -
只是为了确保您使用的是 rails4.2 ?
标签: ruby-on-rails sidekiq rails-activejob