我复制了代码如何在线程中运行 aiohttp 服务器? https://stackoverflow.com/questions/51610074/how-to-run-an-aiohttp-server-in-a-thread。它运行良好。所以我增加了一秒钟的睡眠。当我同时发起 10 个请求时。平均响应时间为 9 秒。这是为什么?所有请求不是都会在 1 秒多一点的时间内返回吗?
import asyncio
import threading
from aiohttp import web
import time
loop = asyncio.get_event_loop()
def say_hello(request):
time.sleep(1)
return web.Response(text='Hello, world')
app = web.Application(debug=True)
app.add_routes([web.get('/', say_hello)])
handler = app.make_handler()
server = loop.create_server(handler, host='127.0.0.1', port=8080)
def aiohttp_server():
loop.run_until_complete(server)
loop.run_forever()
t = threading.Thread(target=aiohttp_server)
t.start()
请改用 asyncio.sleep。您的设置正在运行 coros,该 coros 在屈服于事件循环之前会硬休眠 1 秒。因此,如果你收集了一堆,你必须为每个收集连续等待 1 秒钟。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)