Проблема в том, что сервер не принимает никаких запросов до тех пор, пока первый заданный запрос не вернется.
import asyncio
import datetime as dt
from aiohttp import web
async def search(request):
print('!START! %s' % dt.datetime.now())
await asyncio.sleep(5)
print('!--END! %s' % dt.datetime.now())
return web.json_response(data={})
app = web.Application()
app.router.add_get('/search/', search)
web.run_app(app)
#run_server
#python -m aiohttp.web -H localhost -P 8080 handler:init_func
Пример: я запустил http://localhost:8080/search/ на двух вкладках почти одновременно. время. Но я видел, что запросы обрабатываются последовательно.
!START! 2017-04-24 12:05:37.978347
!--END! 2017-04-24 12:05:47.980859
!START! 2017-04-24 12:05:48.037671
!--END! 2017-04-24 12:05:58.040659
Но я ожидал, что запросы будут обрабатываться параллельно.
!START! 2017-04-24 12:05:37.978347
!START! 2017-04-24 12:05:38.000000
!--END! 2017-04-24 12:05:47.980859
!--END! 2017-04-24 12:05:48.000000
Что я сделал не так?
search(request)
? предоставьте минимальный, полный и поддающийся проверке пример. - person hiro protagonist   schedule 23.04.2017from views import search app = web.Application() app.router.add_get('/search/', search) routes.setup(app)
- person Roman   schedule 23.04.2017curl http://localhost:8080/search/ &
). - person kwarunek   schedule 24.04.2017