Чем каналы Django отличаются от сельдерея?

Недавно я узнал о каналах Django. Может кто-нибудь сказать мне разницу между каналами и сельдереем, а также где использовать сельдерей и каналы.

Ответы на вопрос(4)

Каналы Django дают Django возможность обрабатывать не только простые HTTP-запросы, включая Websockets и HTTP2. Воспринимайте это как двустороннюю двустороннюю связь, которая происходит асинхронно. Обновление браузера не требуется. Несколько клиентов могут отправлять и получать данные по каналам websocket и django, организуя этот пример взаимодействия в групповом чате с одновременным доступом клиентов одновременно. Вы можете добиться фоновой обработки длинного кода, в некоторой степени похожего на сельдерей, но применение каналов отличается от применения сельдерея.

Celery - это асинхронная очередь задач / очередь заданий, основанная на распределенной передаче сообщений. Как и планирование. В терминах leman, я хочу запустить и запустить задачу в фоновом режиме, или я хочу, чтобы периодическое задание запускалось и выполнялось в заднем интервале с заданным интервалом. Вы также можете запускать задание синхронно, а также запускать и ждать завершения и продолжения. Таким образом, ключевое различие заключается в том, в каком случае они служат, и в целях структур

Другие ответы, в значительной степени объяснившие разницу, но в действительности Channels & Celery могут выполнять общие асинхронные задачи.

Каналы и Celery используют бэкэнд для сообщений и рабочих демонов. Так что то же самое можно реализовать с обоими.

Но имейте в виду, что Celery изначально создан для и может справиться с большинством проблем пула задач (повторных попыток, бэкэнда результата и т. Д.), Для которых каналы абсолютно не предназначены.

каналы в Джанго дляWebSocket, long-poll HTTP.

Сельдерей для фоновой задачи, очереди.

Решение Вопроса

каналы в Django предназначены для асинхронной обработки запросов.
Стандартная модель, которую использует Django - это запрос-ответ, но она имеет существенные ограничения. Мы не можем делать ничего, кроме ограничений этой модели.
Появились каналы, позволяющие поддерживать Web Socket и создавать сложные приложения вокруг Web Sockets, чтобы мы могли отправлять несколько сообщений, управлять сеансами и т. Д.

Сельдерей это совершенно другая вещь, это асинхронная очередь задач / очередь заданий, основанная на распределенной передаче сообщений. Это в первую очередь для постановки в очередь задач и планирования их выполнения через определенные промежутки времени.

Проще говоря каналы используются когда вам нужноасинхронная передача данных как приложение для чата, а Celery предназначен для планирования задач и событий, например сервер, собирающий информацию в Интернете для определенного типа новостей с фиксированными интервалами.

 Johan21 сент. 2018 г., 18:46
Допустим, я хочу создать какой-нибудь файл, который занимает 30 секунд. Должен ли я использовать Celery или Channels?
 guettli25 июл. 2017 г., 14:49
Вы сказали: «Сельдерей - это совсем другое». Я думаю, что с точки зрения высокого уровня они не совсем разные. Что просходит? Ввод, обработка, вывод :-) Смотри:en.wikipedia.org/wiki/IPO_model
 therealsachin17 апр. 2017 г., 08:34
Каналы Django поддерживают фоновую обработку. Я думаю, что вопрос больше в том, как фоновая обработка каналов django отличается от работников сельдерея.
 Meghdeep Ray22 сент. 2018 г., 11:10
@johan Сельдерей будет лучше для этого.

Ваш ответ на вопрос