防止aiohttp服务器堆叠

时间:2019-04-09 16:08:35

标签: python aiohttp

我正在Python中使用aiohttp设置服务器。我收到的每个请求大约需要0.5秒才能完成。现在,如果我突然同时有1000个请求,那么所有这些请求将“堆叠”并依次执行。 我想在一段时间后轻松地“取消”请求(不仅在前端,而且在我的服务器上,以便它可以回答新请求。) 我该怎么办?

async def query_similar(request):
   data = await request.post()
   return longfunction(data)

async def status(request):
   return web.Response(text="Hello")


if __name__ == "__main__":

       _query_similar = partial(query_similar)
       _status = partial(status)


       app = web.Application(client_max_size=1024**16)
       cors = aiohttp_cors.setup(app)
       resource = cors.add(app.router.add_resource('/query'))
       route = cors.add(
           resource.add_route("POST", _query_similar),
           {
               "*": aiohttp_cors.ResourceOptions(
                   allow_credentials=True,
                   expose_headers="*",
                   allow_headers="*"
               )
           }
       )

       resource_status = cors.add(app.router.add_resource('/status'))
       route_status = cors.add(
           resource_status.add_route("GET", _status),
           {
               "*": aiohttp_cors.ResourceOptions(
                   allow_credentials=True,
                   expose_headers="*",
                   allow_headers="*"
               )
           }
       )

       try:
           web.run_app(app, port=args.port)
       finally:
           a=1

谢谢!

0 个答案:

没有答案