2015-01-30 11 views
15

Ich lese dies in Sellerie Dokumentation:Wie setze ich das Ratenlimit auf eine Sellerie-Schlange?

Task.rate_limit http://celery.readthedocs.org/en/latest/userguide/tasks.html#Task.rate_limit

Beachten Sie, dass dies eine Beispiel Ratenbegrenzung pro Arbeiter ist, und nicht eine globale Ratenbegrenzung. Um ein globales Ratenlimit zu erzwingen (z. B. für eine API mit einer maximalen Anzahl von Anforderungen pro Sekunde), müssen Sie auf eine bestimmte Warteschlange beschränken.

Wie setze ich ein Limit für die Sellerie-Warteschlange?

Vielen Dank für die Abstimmung nicht die Frage.

+0

Sellerie docs war sehr vage auf diesem :-( –

Antwort

5

Stellt sich heraus, es kann nicht auf Warteschlange Ebene für mehrere Arbeiter getan werden. IT kann auf Warteschlangenebene für 1 Arbeiter durchgeführt werden. Oder auf Warteschlangenebene für jeden Arbeiter.

Also, wenn Sie 10 Jobs/Minute auf 5 Arbeiter sagen. Ihre Mitarbeiter bearbeiten zusammen bis zu 50 Jobs pro Minute.

Um nur 10 Jobs gleichzeitig ausführen zu lassen, haben Sie sich für einen Mitarbeiter entschieden. Oder wählen Sie 5 Arbeiter mit einer Grenze von 2/Minute.

+2

Wie über einige Besonderheiten - zB wie genau erklären Sie einen Arbeiter nur das zu tun „2/Minute“ – spookylukey

+0

@spookylukey meine Antwort unten –

+0

Nach der Suche nach dem sehen Antwort dieser Frage Ich fand, dass Ratenbegrenzung ist nur auf Aufgabenebene möglich.Sellerie unterstützt nicht Warteschlange Begrenzung der Rate – Seunghoon

0

hey Ich versuche, einen Weg zu finden, Ratenbegrenzung auf Warteschlange zu tun, und ich herausfinden, Sellerie kann das nicht tun, kann jedoch Sellerie die Rate pro Aufgaben steuern, sehen:

http://docs.celeryproject.org/en/latest/userguide/workers.html#rate-limits

So können Sie für eine Problemumgehung möglicherweise eine Aufgabe pro Warteschlange einrichten (was in vielen Situationen sinnvoll ist) und die Aufgabe begrenzen.

1

Sie können dieses Limit im Bereich flower> worker festlegen. gibt es einen angegebenen leeren Platz für die Eingabe Ihres Limits dort. Das Format, das verwendet werden soll vorgeschlagen wird, ist auch wie die folgenden:

Die Frequenzgrenzen können durch Anhängen von „/ s“,> „/ m“ oder „/ h“ in Sekunden, Minuten oder Stunden angegeben werden zu dem Wert. Aufgaben werden gleichmäßig über den angegebenen> Zeitraum verteilt.

Beispiel: "100/m" (hundert Aufgaben pro Minute). Dadurch wird eine Mindestverzögerung von> 600 ms zwischen dem Starten von zwei Tasks in derselben Workerinstanz erzwungen.

+0

Sie können Rate-Limit nur Task-Ebene auf Flower.Sellery nicht unterstützt Warteschlange Ebene Rate-Limiting . – Seunghoon

Verwandte Themen