Skip to content

Getting Started

Xavier Noria edited this page Sep 9, 2015 · 77 revisions

Sidekiq makes every effort to make usage with modern Rails (3.0+) applications as simple as possible.

Rails

  1. Add sidekiq to your Gemfile:
gem 'sidekiq'
  1. Add a worker in app/workers to process jobs asynchronously:
class HardWorker
  include Sidekiq::Worker
  def perform(name, count)
    # do something
  end
end
  1. Create a job to be processed asynchronously:
HardWorker.perform_async('bob', 5)

You can also create a job to be processed in the future:

HardWorker.perform_in(5.minutes, 'bob', 5)

You can also create jobs by calling the delay method on a class method:

User.delay.do_some_stuff(current_user.id, 20)
  1. Start sidekiq from the root of your Rails application so the jobs will be processed:
bundle exec sidekiq

That's it. You do not need to turn on thread-safe mode. You probably should tune your Active Record pool size if your workers are using Active Record. See Advanced Options for more detail.

Plain Ruby

There are some non-Rails examples in examples/. por.rb is a "Plain Old Ruby" example, and sinkiq.rb is a Sinatra integration.

Next: Read The Basics

Clone this wiki locally