How are Django channels different than celery?

Vinay Singh picture Vinay Singh · Jul 27, 2016 · Viewed 9.6k times · Source

Recently I came to know about Django channels. Can somebody tell me the difference between channels and celery, as well as where to use celery and channels.

Answer

Meghdeep Ray picture Meghdeep Ray · Aug 2, 2016

Channels in Django are meant for asynchronous handling of requests.
The standard model Django uses is Request-Response but that has significant limitations. We cannot do anything outside the restrictions of that model.
Channels came about to allow Web Socket support and building complex applications around Web Sockets, so that we can send multiple messages, manage sessions, etc.

Celery is a completely different thing, it is an asynchronous task queue/job queue based on distributed message passing. It is primarily for queuing tasks and scheduling them to run at specific intervals.

Simply put Channels are used when you need asynchronous data communication like a chat application, and Celery is for scheduling tasks and events like a server scraping the web for a certain type of news at fixed intervals.