2011-08-31 4 views
1

En raison du processus d'arrière-plan lourd, nous avons besoin de plusieurs serveurs qui effectuent uniquement des processus d'arrière-plan. Nous utilisons resque pour gérer les tâches d'arrière-plan. Puisque les travailleurs sur chaque serveur feront les mêmes tâches, quelle serait la meilleure façon de procéder?Resque worker sur plusieurs serveurs

  1. Démarrer les travailleurs sur chaque machine, chacun traitant toutes les files d'attente.
  2. Divisez les files d'attente entre les agents sur chaque serveur de sorte que les travailleurs d'un serveur soient responsables de la gestion des files d'attente pendant le traitement des autres files d'attente.

J'aime la première solution. Mais y a-t-il des limites à cela?

Merci.

Répondre

12

Vous devriez pouvoir répartir vos travailleurs Resque sur n'importe quel nombre de serveurs sans aucun problème.

Les files d'attente de travail Resque doivent être utilisées pour classer et organiser différents types de travail.

Je suis personnellement d'avis que chaque travailleur devrait être en mesure de traiter chaque type de travail, de sorte que vous obtenez une utilisation efficace des ressources. Cela étant dit, je change l'ordre de priorité des files d'attente traitées par différents travailleurs, de sorte qu'un type donné de travail est susceptible de trouver un travailleur pour aider même si la plupart des ressources sont consacrées à un travail prioritaire.

Par exemple, avec 6 travailleurs et 3 types de queus:

Queues: 
------- 
critical - top priority jobs 
email - time-sensitive, but not critical 
maintenance - background work, to be done whenever 

Workers w/ Queues 
----------------- 
1: critical, email, maintenance 
2: critical, email, maintenance 
3: critical, email, maintenance 
4: critical, email, maintenance 
5: critical, maintenance, email 
6: critical, maintenance, email 

Cette configuration guarentees travail critique sera traitée avant tout autre travail tout travailleur. Cependant, si le système est inondé de travaux de courrier électronique, seulement les deux tiers des travailleurs seront bloqués s'il y a des travaux de maintenance à effectuer.

Espérons que vous pouvez extrapoler cet exemple à vos files d'attente et vos priorités.

+0

Merci, votre réponse est vraiment utile. J'ai une autre question liée à resque ici: http://stackoverflow.com/questions/7272592/multiple-resque-workers-mode-creating-extra-processes. On dirait que vous avez une bonne connaissance sur resque donc j'ai copié ce lien ici. J'espère que ça ne vous dérange pas :) – bikashp

+0

Super, si vous pouviez le marquer comme répondu et votez pour que ce serait bien. – Winfield

Questions connexes