This article is a guide for experienced developers who need to do asynchronous processing many times, such as scraping data or calling an API multiple times.
It discusses ways to limit the concurrency in asyncio to avoid loading everything in memory at once and overloading the services being called.
The article covers various techniques such as:
- asyncio.gather(),
- asyncio.Semaphore,
- asyncio.as_completed(),
- asyncio.Queue,
- asyncio.wait()
The article also highlights common issues and bugs that can arise with each technique and how to fix them.















