Search code examples
rubyruby-on-rails-3resquesidekiq

Resque vs Sidekiq?


I am currently using Resque for my background process but recently I heard a lot of huff-buff about sidekiq. Could anybody compare/differentiate?

In particular I would like to know is there a way to monitor programmatically whether a job is completed in sidekiq


Solution

  • Resque:

    Pros:

    Cons

    • runs a process per worker (uses more memory);
    • does not retry jobs (out of the box, anyway).

    Sidekiq:

    Pros

    • runs thread per worker (uses much less memory);
    • less forking (works faster);
    • more options out of the box.

    Cons

    • [huge] requires thread-safety of your code and all dependencies. If you run thread-unsafe code with threads, you're asking for trouble;
    • works on some rubies better than others (jruby is recommended, efficiency on MRI is decreased due to GVL (global VM lock)).