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.