asyncio.sleep блокирует? - PullRequest
       21

asyncio.sleep блокирует?

0 голосов
/ 08 февраля 2019

Я использую приведенный ниже код.3 запроса для каждой (3 вкладки браузера, которые я быстро обновляю).

Первый time.sleep занимает 60 секунд для всех запросов, выполняемых при блокировке.

Второй asycio.sleep запускаетсявсе 3 запроса мгновенно, так как я не ожидаю.

Третий await asyncio.sleep берет 20 секунд для первого запроса, затем еще 10 для второго и затем еще 10 для третьего.т.е. всего 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)
...