异步睡眠是阻塞吗?

2024-05-18 20:36:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行下面的代码。每个3个请求(3个浏览器选项卡,我正在快速刷新)。在

第一个time.sleep需要60秒才能运行所有请求,因为我正在阻塞。在

第二个asycio.sleep立即运行所有3个请求,因为我没有等待。在

第三个await asyncio.sleep第一个请求需要20秒,第二个请求需要10秒,第三个请求需要10秒。i、 总共40秒。我希望我可以运行大量的请求,所有的20秒左右,因为我不应该阻止?在

import asyncio
import time
from datetime import datetime

from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
    # time.sleep(20)
    # asyncio.sleep(20)
    await asyncio.sleep(20)
    return json({"hello": datetime.now().isoformat()})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

Tags: 代码fromimportasynciojsonappdatetimetime

热门问题