Clone this wiki locally
Sidekiq makes every effort to make usage with modern Rails applications as simple as possible. Please see the ActiveJob page if you want to use Sidekiq with ActiveJob.
- Add sidekiq to your Gemfile:
- Add a worker in
app/workersto process jobs asynchronously:
rails g sidekiq:worker Hard # will create app/workers/hard_worker.rb
class HardWorker include Sidekiq::Worker def perform(name, count) # do something end end
- Create a job to be processed asynchronously:
perform is an instance method, whereas
perform_async is called on the class.
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:
- 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.
There are some non-Rails examples in
por.rb is a "Plain Old Ruby" example, and
sinkiq.rb is a Sinatra integration.
Watch an overview:
Next: The Basics