2017-09-13 1 views
7

Wir verwenden Sellerie für unsere asynchronen Hintergrundaufgaben und wir haben 2 Warteschlangen für verschiedene vorrangige Aufgaben. Wir haben 2 Cluster von Knoten, die sie separat versorgen. Die Dinge funktionieren gut wie erwartet.Priorisierung von Warteschlangen zwischen mehreren Warteschlangen in Sellerie?

Frage:

Wir bekommen meist niedrige Priorität Aufgaben. Zur Optimierung der Ressourcenauslastung frage ich mich, ob es eine Möglichkeit gibt, Mitarbeiter (die Warteschlangen mit hoher Priorität hören) so zu konfigurieren, dass beide Warteschlangen angehört werden. Aber nehmen Sie Jobs aus der Warteschlange mit höherer Priorität, solange ein Job dort ist? und andernfalls auf eine Warteschlange mit niedriger Priorität zurückfallen.

Ich habe die prioritätsbasierte Aufgabenplanung durchgespielt, die unter @Celery Task Priority diskutiert wird.

Aber meine Fragen priorisiert Warteschlangen nicht nur Aufgaben innerhalb einer Warteschlange.

Antwort

1

Sie können dies teilweise erreichen, indem Sie beim Start mehrere Warteschlangen für den Worker definieren.

Sie können es mit dem folgenden Befehl tun: Siehe auch here für weitere Details.

celery -A proj worker -l info -Q Q1,Q2 

Obwohl dieser Ansatz ein Problem hat. Es tut es nicht mit Rückfall Art von Ansatz. Da verteilen Arbeiter, die mehrere Warteschlangen hören, die Ressourcen gleichmäßig unter ihnen.

Daher kann Ihre Anforderung der Verarbeitung nur von 'Warteschlange mit hoher Priorität' selbst dann nicht erreicht werden, wenn sich etwas in 'Warteschlange für normale Priorität' befindet. Dies kann minimiert werden, indem mehr Workers (möglicherweise 75%) für die Warteschlange mit hoher Priorität und 25% für die Warteschlange mit normaler Priorität zugewiesen werden. oder andere Anteile basierend auf Ihrer Arbeitslast.

0

Leider ist es mit Sellerie aus der Box nicht möglich.

Eine optimale Lösung ist, 2 Arbeiter zu starten. 1 für niedrige Priorität und andere für hohe Priorität mit n-Prozess.

Wenn keine Aufgaben mit hoher Priorität vorhanden sind, verwendet der Mitarbeiter mit Aufgaben mit niedriger Priorität alle Ressourcen und umgekehrt. Wenn beide Aufgaben vorhanden sind, werden Ressourcen gleichmäßig verteilt.

+0

Es kann eine Lösung sein. Ich werde es versuchen . –

Verwandte Themen