【问题标题】:NameError: uninitialized constant MyJob ActiveJob and SidekiqNameError:未初始化的常量 MyJob ActiveJob 和 Sidekiq
【发布时间】: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


【解决方案1】:

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

重启sidekiq进程就可以了。

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

【讨论】:

  • 听起来很初级。仍然想知道为什么我 2 小时前不这样做:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 2013-05-28
  • 2015-01-19
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多