I personally worked with Resque and Sidekiq. The main difference between the two is that Sidekiq creates new threads for each job.
Resque has a process for every job. This basically means that Resque implies a failure, and the other jobs will not fail if one of the processes fails. Sidekiq, since it works with threads, if one of these threads is blocked for any reason, the whole process will be blocked.
From the answer in another QA Resque vs Sidekiq?
Resque:
Pros:
does not require thread safety (works with almost any stone); does not have a preference for a translator (you can use any ruby); many plugins. Minuses
Starts a process for one employee (uses more memory); does not perform repeated tasks (in any case). Sidekiq:
Arguments
starts a thread per worker (uses much less memory); less forking (faster); more options out of the box. Minuses
[huge] requires thread safety for your code and all dependencies. If you are running unsafe code with threads, you are asking for trouble; much fewer plugins (at the moment there are only 2); works on some rubies better than others (recommended by jruby and rubinius, efficiency on MRI is reduced due to GVL (global VM lock)).
EDIT
In any case, to answer your question. In all projects that we used email programs, we use Resque.
Leo correa
source share