2017-01-17 5 views
2

Ich frage mich, was ist der beste Weg, Sellerie von Django zu entkoppeln, um die beiden Teile zu docken und docker swarm service verwenden? Typischerweise beginnt man ihre Sellerie Arbeiter und Sellerie schlagen einen Befehl, die dort Anwendung Django verweist:Decouple und Dockerize Django und Sellerie

celery worker -A my_app 
celery beat -A my_app 

Von diesem Ich glaube, Sellerie nimmt Config-Informationen von Einstellungsdatei und einer celery.py Datei, die leicht zu bewegen, um eine Microservice. Was ich nicht völlig verstehe ist, wie die Aufgaben das Django ORM nutzen würden? Oder ist das nicht wirklich das Microservices-Mantra und Sellery sollte entworfen werden, um GET/POST-Aufrufe an Django REST Framework API für die Daten zu machen, die es benötigt, um die Aufgabe abzuschließen?

+0

haben Sie keine Informationen über diese gefunden? Ich suche ähnlich, meine Django/Sellerie-App zu bewegen, um Schwarm zu verwenden, aber renne in viele Probleme richtig, es zu docken, würde lieben, zu hören, wenn Sie irgendwelche Erfolge gehabt hatten! – BHendricks

+0

http://matthewminer.com/2015/02/21/pattern-for-async-task-queue-results.html –

Antwort

1

Ich verwende ein Setup, bei dem der Code für die Django-App und seine Selleriearbeiter derselbe ist (wie in einem einzigen Repository).

Bei der Bereitstellung ich sicherstellen, dass überall die gleiche Code-Release haben, keine Überraschungen mit dem ORM zu vermeiden, etc ...

Celery beginnt mit einem Verweis auf die django app, so dass sie den Zugang zu den Modelle, etc ...

Die Kommunikation zwischen den Arbeitern und der Haupt-App geschieht entweder durch die Messaging-Warteschlange (rabbitmq oder redis ...) oder über die Datenbank (wie in der Sellerie Arbeiter arbeitet direkt in der db, seit es kennt die Modelle, etc ...).

Ich bin nicht sicher, ob dies das Mantra folgt Microservices, aber es funktioniert :)

Verwandte Themen