I am using Sidekiq with Rails 3, with the following worker class:
class BotWorker
include Sidekiq::Worker
def perform(user_id)
user = User.find(
Strange. I do the same thing except use self.class
instead of BotWorker
and it works. I don't have any arguments for my perform
method though.
You might want to wrap your method in a begin/rescue/ensure block and move the re-queuing into the ensure block.
If User.find
fails to find a user, it's going to raise an error which Sidekiq will catch and should move your job into the Retry queue. Probably not what you want.