2017-09-10 6 views
0

J'ai un ensemble de files d'attente Resque, classées par priorité. Pour tous les travaux de la file d'attente ayant la priorité la plus basse, ils n'ont pas d'arguments, et une exécution ultérieure remplacera toutes les exécutions précédentes - par ex. ils synchronisent des données avec un service externe. Il est donc illogique de créer un backlog avec plusieurs copies de ces tâches. L'exécuter trois fois de suite n'ajoute aucune valeur. Mais pendant les périodes de pointe, nous recevons un backlog (dans cette file d'attente uniquement) puisque les travailleurs sont occupés avec des tâches de priorité supérieure. Puis-je empêcher ce retard en empêchant la première mise en file d'attente des tâches redondantes?Resque: ne pas mettre en file d'attente les tâches redondantes?

+0

Pour éviter le retard, vous devez d'abord vérifier que le même travail a déjà été mis en file d'attente. Parce que resque & redis par défaut ne fournit pas une telle fonctionnalité d'unicité. –

Répondre