2

我在sidekiq/activejob集成方面遇到问题。perform_later我有一个从 MyJob 类调用方法的控制器。这适用于该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

4

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

只需重新启动 sidekiq 进程,它就可以正常工作了。

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

于 2015-03-01T15:23:54.313 回答