aiohttp import web
routes = web.RouteTableDef()
@routes.get('/{num}')
async def hello(request):
await asyncio.sleep(1)
print(request)
return web.json_response({"num": int(request.match_info['num']) * 2, "additional": 'b'})
app = web.Application()
app.add_routes(routes)
web.run_app(app)
тайминги - real 0m10,427s
user 0m0,864s
sys 0m0,137s
tldr: проблема была в том, что в main я делал block_on, а не await )) воможно таскпул не нужен
Честно говоря код построенный на костылях, почитать бы доку tokio перед тем, как писать асинхронщину, не говоря о том, что этот код дуддосит сервер, нехорошо.
Я второй день на расте пишу )
мне теперь интересно, а что конкретно выглядит как костыль при полной формулировке задания "хочется обработать х урлов, печатая возврат с каждого как только он доступен - но в отдельной функции" рекомендуется использовать select? комментарий про ddos нерелевантен при классической формулировке задачи )
Обсуждают сегодня