The rest of this chapter will cover the following popular asynchronous systems used with Django, with somewhat different use cases. They are as listed as follows:
- Celery: Worker threads-based model for handling computation outside the Django process
- asyncio: Python built-in module for concurrently executing multiple tasks within the same thread
- Django Channels: Real-time message queue-like architecture to manage I/O events such as WebSockets
Let's first understand the most popular and robust solution for running tasks asynchronously: Celery.