J'ai une application Rails avec Resque effectuant des tâches d'arrière-plan sur plusieurs serveurs. Les tâches sont différentes en termes de besoins en ressources, donc je voudrais limiter le nombre de tâches de type particulier, chaque serveur peut faire. Je veux pouvoir demander à plusieurs serveurs d'interroger la même base de données Redis. Voici le scénario: J'ai Server-1 et Server-2 connectés à la même base de données Redis.Resque - répartir uniformément la charge de travail entre plusieurs serveurs
1) Chaque serveur doit prendre 3 tâches "d'encodage" et 5 tâches "d'analyse" au maximum (8 tâches au total). 2) À un moment donné, le serveur Redis aura 10 tâches dans la file d'attente "Encoding" et 12 tâches dans la file d'attente "Parsing" à traiter par les travailleurs Resque. J'ai 2 serveurs en cours d'exécution, la même base de données.
QUESTION: Comment puis-je empêcher le serveur 1 de prendre 8 tâches de "codage" et le serveur 2 de prendre le reste? En d'autres termes, comment limiter Server-1 à ne prendre que 3 tâches de la file d'attente "Encoding" et 5 tâches de la file d'attente "Parsing" et faire Serveur-2 faire la même chose?
Je veux garder le code universel pour que je puisse le déployer sur plusieurs serveurs sans peaufinage individuels ..
peut vous indiquer quelques exemples de ce superviseur? – Stpn