I always see some unexpected behavior when I use async code in python. For example I get a lot of RuntimeError: Event loop is closed
after running this simple code. Can someone explain what I'm doing wrong?
from asyncio import run, wait
from datetime import datetime
import aiohttp
url = "https://api.giphy.com/v1/gifs/random?api_key=dc6zaTOxFJmzC&tag=cat"
start = datetime.now()
async def load(i):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
pass
print("Downloaded", i + 1, datetime.now() - start)
async def main():
reqs = []
for i in range(100):
reqs.append(load(i))
await wait(reqs)
run(main())