Resque is a popular background processing solution and its what we use at Batch. It’s battle tested and for the most part has stood up well.
However, it feels heavy-weight because each Resque worker is a distinct process. Which is where Sidekiq comes in: it uses a pool of threads to process jobs so at most you have one master process.
For smaller apps on constrained systems (read: VPS) I feel this can be a better solution. I’ve been using Sidekiq for a couple of weeks now and I really like it. Sidekiq is Resque compatible so you can write jobs with existing Resque code and then process them using new Sidekiq workers. But in my case I just went straight Sidekiq.
One major change is that in Resque your workers must implement a class method of
perform, but in Sidekiq the
perform method must be an instance method.
So far I am a fan of Sidekiq. Give it a shot!