Avatar of jeromedalbert
Senior Backend Engineer at StackShare

We use Sidekiq to process millions of Ruby background jobs a day under normal loads. We sometimes process more than that when running one-off backfill tasks.

With so many jobs, it wouldn't really make sense to use delayed_job, as it would put our main database under unnecessary load, which would make it a bottleneck with most DB queries serving jobs and not end users. I suppose you could create a separate DB just for jobs, but that can be a hassle. Sidekiq uses a separate Redis instance so you don't have this problem. And it is very performant!

I also like that its free version comes "batteries included" with:

  • A web monitoring UI that provides some nice stats.
  • An API that can come in handy for one-off tasks, like changing the queue of certain already enqueued jobs.

Sidekiq is a pleasure to use. All our engineers love it!

3 upvotes16.3K views