Rq: Demande de fonctionnalité : modifier l'ordre des tâches

Créé le 7 mai 2019  ·  4Commentaires  ·  Source: rq/rq

Je n'ai pas trouvé l'option dans la documentation ou dans la source, mais une fonctionnalité permettant de déplacer un travail dans une file d'attente serait formidable. En d'autres termes, réorganisez les tâches, en plaçant des tâches spécifiques au-dessus des autres. Je sais que nous pouvons utiliser des files d'attente de priorité plus élevée, etc., mais je pense que la possibilité de déplacer le travail vers le haut ou vers le bas de la file d'attente serait également une bonne fonctionnalité. Cela pourrait être fait en faisant apparaître tous les travaux et en les rajoutant dans l'ordre requis, mais cela semble simplement inutile. Y-a t'il une autre possibilité?

Je suis heureux de travailler là-dessus, mais je voulais juste vérifier que ce n'est pas déjà possible et si vous avez des exigences ou des suggestions spécifiques à ce sujet avant de commencer. Merci.

Commentaire le plus utile

Par défaut, les travaux en file d'attente sont traités sur une base FIFO.

Vous pouvez utiliser queue.enqueue(at_front=True) pour mettre un travail au premier plan de la file d'attente à traiter.

Tous les 4 commentaires

Non, il n'est actuellement pas possible de réorganiser les travaux. Cependant, RQ prend en charge les dépendances de travail. Cela vous permet de créer foo_job qui n'est mis en file d'attente qu'après l'exécution réussie de bar_job .

La réorganisation du travail semble également être une opération coûteuse sur de grandes files d'attente.

est-ce que cela aide?

Un nouveau type de file d'attente, comme une file d'attente prioritaire, peut être utile dans cette situation.

Merci pour les réponses. En regardant les files d'attente prioritaires, cela devrait fonctionner. Je pense qu'il pourrait également être possible d'utiliser une file d'attente FIFO si vous utilisez une liste, avec la commande LINSERT Redis. Quel type de file d'attente RQ utilise-t-il actuellement - est-ce une FIFO/liste ou autre chose ?

Par défaut, les travaux en file d'attente sont traités sur une base FIFO.

Vous pouvez utiliser queue.enqueue(at_front=True) pour mettre un travail au premier plan de la file d'attente à traiter.

Cette page vous a été utile?
0 / 5 - 0 notes