Wir haben eine verteilte Architektur basierend auf rabbitMQ
und Celery
. Wir können mehrere Aufgaben ohne Probleme parallel starten. Die Skalierbarkeit ist gut.Interagieren mit Sellerie laufenden Aufgabe
Jetzt müssen wir die Aufgabe remote steuern: PAUSE, RESUME, CANCEL. Die einzige Lösung, die wir gefunden haben, besteht darin, in der Sellerie-Task einen RPC-Aufruf an eine andere Task zu machen, die den Befehl nach einer DB-Anforderung beantwortet. Der Sellerie-Task und der RPC-Task befinden sich nicht auf demselben Computer und nur der RPC-Task hat Zugriff auf den DB.
Haben Sie einen Rat, wie Sie es verbessern und problemlos mit einer laufenden Aufgabe kommunizieren können? Danke
EDIT: In der Tat würden wir so etwas wie im Bild unten tun. Es ist einfach, die Blue
Konfiguration oder die Orange
zu tun, aber wir wissen nicht, wie man beides gleichzeitig tut. Arbeiter abonnieren eine gemeinsame Jobs queue
und jeder Arbeiter hat seine eigene Admin queue
an einer Börse deklariert.
EDIT: Ist dies nicht möglich, mit Celery
, I'am offen für eine Lösung mit anderen Frameworks wie python-rq
.
Vielen Dank, aber gibt es eine Möglichkeit, den Management-Kanal mit Sellerie zu implementieren? – Julio