web-dev-qa-db-fra.com

Resque vs Sidekiq?

J'utilise actuellement Resque pour mon processus d'arrière-plan, mais récemment, j'ai entendu beaucoup de rumeurs à propos de sidekiq. Quelqu'un pourrait-il comparer/différencier?

En particulier, j'aimerais savoir s'il existe un moyen de contrôler par programme si un travail est terminé dans sidekiq

125
Bhushan Lodha

Resque:

Avantages:

Les inconvénients

  • exécute un processus par travailleur (utilise plus de mémoire);
  • ne réessaie pas les travaux (dans la boîte, de toute façon).

Sidekiq:

Avantages

  • exécute le thread par travailleur (utilise beaucoup moins de mémoire);
  • moins forking (fonctionne plus vite);
  • plus d'options hors de la boîte.

Les inconvénients

  • [énorme] requiert la sécurité du thread de votre code et toutes les dépendances . Si vous exécutez du code non sécurisé avec des threads, vous vous posez des problèmes;
  • fonctionne sur certains rubis mieux que d’autres (jruby est recommandé, l’efficacité de l’IRM est réduite en raison de la GVL (global VM verrouillé))).
128
Sergio Tulentsev

Ryan a créé cette semaine une diffusion Web pour Sidekiq, qui inclut également une comparaison avec Resque. Vous voulez probablement le vérifier:

Url: http://railscasts.com/episodes/366-sidekiq

29
Firoz Ansari

De la question:

En particulier, j'aimerais savoir s'il existe un moyen de contrôler par programme si un travail est terminé dans sidekiq

Voici une solution pour cela:

  1. Sidekiq :: Status gem
  2. API de traitement par lots (Sidekiq Pro) - tilisation
10
Gurpartap Singh