2016-07-27 20 views

Odpowiedz

15

Channels w Django są przeznaczone do asynchronicznej obsługi żądań.
Standardowym modelem używanym przez Django jest Request-Response, ale ma to znaczące ograniczenia. Nie możemy zrobić niczego poza ograniczeniami tego modelu.
kanały powstała, aby umożliwić obsługę websocket i budowania złożonych aplikacji internetowych wokół gniazda, tak, że możemy wysłać kilka wiadomości, zarządzania sesjami itp

Celery to zupełnie inna sprawa, to jest asynchroniczne kolejka zadań/kolejka zadań oparta na przekazywaniu wiadomości rozproszonych. Dotyczy to głównie zadań kolejkowania i planowania ich uruchamiania w określonych odstępach czasu.

prostu umieścić kanały są wykorzystywane, gdy trzeba asynchronous data communication jak aplikacji czatu i Seler jest do planowania zadań i wydarzeń, takich jak serwer skrobanie internetowych dla pewnego typu wiadomości w stałych odstępach czasu.

+8

Kanały Django obsługują przetwarzanie w tle. Myślę, że pytanie dotyczy raczej tego, w jaki sposób przetwarzanie kanałów w tle Django różni się od pracy selera. – therealsachin

+1

Powiedziałeś: "Seler to zupełnie inna sprawa". Myślę, że z perspektywy wysokiego poziomu nie są one zupełnie różne. Co się dzieje? Wejście, przetwarzanie, wyjście :-) Zobacz: https://en.wikipedia.org/wiki/IPO_model – guettli

1

Kanały Django dają django możliwość obsługiwać więcej niż zwykłe żądania HTTP, w tym Websockets i HTTP2. Pomyśl o tym jako o dwustronnej komunikacji dwustronnej, która odbywa się asynchronicznie. Bez odświeżania przeglądarki. Wielu klientów może wysyłać i odbierać dane za pośrednictwem websocket, a kanały django organizują ten przykład komunikacji czatu grupowego z równoczesnymi klientami uzyskującymi dostęp w tym samym czasie. W pewnym stopniu można uzyskać przetwarzanie w tle kodu długotrwałego, tak jak w przypadku selera, ale zastosowanie kanałów różni się od zastosowania selera.

Selery to asynchroniczna kolejka zadań/kolejka zadań oparta na przekazywaniu przekazywanych wiadomości. Oprócz planowania. W kategoriach Leman chcę uruchomić i uruchomić zadanie w tle lub chcę mieć zadanie okresowe, które uruchamia się z tyłu w ustalonym przedziale czasu. Możesz także strzelać do celu w sposób synchroniczny, a także strzelać i czekać do końca i kontynuować. więc kluczowa różnica jest w przypadku użycia podają i celami ram

5
  • Channels w Django dla WebSocket, long-poll HTTP.

  • Celery jest dla zadania tła, kolejki.