Kürzlich habe ich etwas über Django-Kanäle erfahren. Kann mir jemand den Unterschied zwischen Kanälen und Sellerie sagen? Und wo Sellerie und Kanäle zu verwenden.Wie unterscheiden sich Django-Kanäle von Sellerie?
Antwort
Channels in Django sind für die asynchrone Behandlung von Anfragen gedacht.
Das Standardmodell, das Django verwendet, ist Request-Response, weist jedoch erhebliche Einschränkungen auf. Wir können nichts außerhalb der Beschränkungen dieses Modells tun.
Kanäle kam WebSocket-Unterstützung und den Aufbau komplexer Anwendungen rund um Web Sockets, zu ermöglichen, so dass wir mehrere Nachrichten senden können, Sitzungen verwalten usw.
Celery eine ganz andere Sache ist, es eine asynchrone Aufgabe Warteschlange/Jobwarteschlange basierend auf verteilter Nachrichtenübergabe. Es dient hauptsächlich dazu, Aufgaben in Warteschlangen einzureihen und deren Ausführung in bestimmten Intervallen zu planen.
Einfach ausgedrückt Kanäle verwendet werden, wenn Sie asynchronous data communication wie eine Chat-Anwendung benötigen, und Sellerie ist für die Planung von Aufgaben und Ereignisse wie ein Server im Internet für eine bestimmte Art von Nachrichten in festen Abständen Schaben.
Django-Kanäle geben django die Möglichkeit, mehr als nur einfache HTTP-Anfragen zu verarbeiten, einschließlich Websockets und HTTP2. Stellen Sie sich dies als 2-Wege-Duplex-Kommunikation vor, die asynchron abläuft Kein Browser wird aktualisiert. Mehrere Clients können Daten über Websocket und Django-Kanäle senden und empfangen. Bei diesem Interkommunikations-Beispiel wird ein Gruppen-Chat mit gleichzeitig zugreifenden Clients orchestriert. Sie können eine Hintergrundverarbeitung von lang laufendem Code erreichen, der dem eines Selleries in gewissem Ausmaß ähnlich ist, aber die Anwendung von Kanälen unterscheidet sich von der von Sellerie.
Sellerie ist eine asynchrone Aufgabenwarteschlange/Jobwarteschlange, die auf der verteilten Nachrichtenübermittlung basiert. Sowie die Planung. Auf leman-Ebene möchte ich eine Aufgabe im Hintergrund abfeuern und ausführen, oder ich möchte eine periodische Aufgabe haben, die in einem bestimmten Intervall feuert und läuft. Sie können die Aufgabe auch auf eine synchrone Art und Weise auslösen und warten, bis sie abgeschlossen ist und fortfahren. So ist der wesentliche Unterschied in den Anwendungsfall dienen sie und Ziele der Gerüste
- 1. UIBarButtonItem Größen unterscheiden sich
- 2. Unterscheiden sich GDB-Register von Prozessorregistern?
- 3. NearlySearch Ergebnisse unterscheiden sich von SearchBox
- 4. Warum unterscheiden sich Build-Typen von Produktaromen?
- 5. Warum unterscheiden sich Monad-Transformatoren von Monaden?
- 6. Wie unterscheiden sich öffentliche und private Schlüssel?
- 7. JPA oder JDBC, wie unterscheiden sie sich?
- 8. Wie unterscheiden sich diese drei parametrisierten Variablen?
- 9. Wie unterscheiden sich diese beiden übergeordneten Funktionen?
- 10. Wie unterscheiden sich diese beiden Aufrufe?
- 11. Wie unterscheiden sich diese beiden Guids?
- 12. Wie unterscheiden sich memory_order_seq_cst und memory_order_acq_rel?
- 13. Wie unterscheiden sich bcprov und bcprov-ext?
- 14. Wie unterscheiden sich Zufallsgenerierungsmethoden in Python?
- 15. Wie unterscheiden sich 127.0.0.1, 0.0.0.0 und localhost?
- 16. Wie unterscheiden sich `createImageData()` und `new ImageData()`?
- 17. MSBuild: Wie überschreibt Ausgabedateiname, um sich von Assemblyname zu unterscheiden?
- 18. Wie unterscheiden sich die hasItems, contains und containsInAnyOrder von Hamcrest?
- 19. Wie unterscheiden sich Prototyp-Funktionen von normalen Funktionen in Javascript?
- 20. Wie unterscheiden sich "moderne JVMs" von älteren JVMs?
- 21. Force.com-Workflows - wie unterscheiden sie sich von Triggern?
- 22. JMeter-Berichte unterscheiden sich in Jenkins
- 23. == und% in% unterscheiden sich basierend auf Zeichencodierung?
- 24. Warum unterscheiden sich diese Memo-Funktionen?
- 25. Warum unterscheiden sich Leerzeichen in HTML-Markup von CSS?
- 26. Warum unterscheiden sich gerenderte Pixel von realen Pixeln?
- 27. Mein Stack-Frames unterscheiden sich von dem Erbe einer
- 28. Ergebnisse für performSelector: unterscheiden sich von Standard Punktnotation Anruf?
- 29. Wann unterscheiden sich Request.Params und Request.Form?
- 30. Ausgabewerte unterscheiden sich zwischen R und Python?
Django-Kanäle unterstützt Hintergrundverarbeitung. Ich denke, die Frage ist mehr auf, wie Django-Kanäle Hintergrundverarbeitung von Sellerie Arbeitnehmer unterscheidet. – therealsachin
Sie sagten "Sellerie ist eine ganz andere Sache". Ich denke, dass sie aus der höheren Perspektive nicht völlig verschieden sind. Was geschieht? Eingabe, Verarbeitung, Ausgabe :-) Siehe: https://en.wikipedia.org/wiki/IPO_model – guettli