Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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)
NOTE: If you are testing this out in Rails console and you use spring you may need to stop spring so that you can access the new worker.
- Start sidekiq from the root of your Rails application so the jobs will be processed:
bundle exec sidekiq
That's it. 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