Is a loop.close()
needed prior to returning async values in the below code?
import asyncio
async def request_url(url):
return url
def fetch_urls(x):
loop = asyncio.get_event_loop()
return loop.run_until_complete(asyncio.gather(*[request_url(url) for url in x]))
That is, should fetch_urls
be like this instead?:
def fetch_urls(x):
loop = asyncio.get_event_loop()
results = loop.run_until_complete(asyncio.gather(*[request_url(url) for url in x]))
loop.close()
return results
If the loop.close()
is needed, then how can fetch_urls
be called again without raising the exception: RuntimeError: Event loop is closed
?
A previous post states that it is good practice to close the loops and start new ones however it does not specify how new loops can be opened?