I try using aiohttp for sending some request in loop. When I run this code I see in process list threads at first iteration: 5 thread, next iteration after 5 sec add 5 thread, etc
I try find answer, but I only found info about aiodns, I test with aiodns, but situations not chaged. aiohttp run thread, why ? what's I doing wrong ?
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import asyncio
import aiohttp
import aiodns
import aiohttp.resolver
aiohttp.resolver.DefaultResolver = aiohttp.resolver.AsyncResolver
url = "http://localhost/script"
async def process_send():
print("Run process_send")
while 1:
print(aiohttp.resolver.DefaultResolver)
async with aiohttp.ClientSession() as session:
async with session.post(url, data={'id': '13459393', 'data': 'somedate'}, timeout=15) as resp:
print("Send result %s " % (str(resp.status)))
await asyncio.sleep(5)
if __name__ == '__main__':
ioloop = asyncio.get_event_loop()
tasks = [ioloop.create_task(process_send()) for _ in range(5)]
wait_tasks = asyncio.wait(tasks)
ioloop.run_until_complete(wait_tasks)
ioloop.close()