Search code examples
ruby-on-railsruby-on-rails-4redissidekiq

Sidekiq: NoMethodError: undefined method `perform'


Here is what I am trying to do:

2.1.2 :001 > UpdateStyleRanks.perform_async

Here is the error:

NoMethodError: undefined method `perform' for #<UpdateStyleRanks:0x00000002f5e388>

Here is my worker:

# app/workers/update_style_ranks.rb
class UpdateStyleRanks
  include Sidekiq::Worker

  def perform
  end
end

Solution

  • There is no naming requirement for workers. You can do this:

    class Foo
      include Sidekiq::Worker
      def perform; end
    end
    

    I suspect you just need to restart Rails/Spring/Zeus to pick up the new class.