python aiohttp:如果用户重新请求,则取消处理程序

时间:2019-03-06 12:21:57

标签: python aiohttp

我有一个非常简单的aiohttp Web服务器:

from aiohttp import web
import time

async def hello(request):
    time.sleep(2) # heavy calculations goes here
    return web.Response(text="Hello, world")

app = web.Application()
app.add_routes([web.get('/search', hello)])
web.run_app(app)

如果用户(在其浏览器中)在短时间内多次请求“ / search?query = xxx”,那么我的“大量计算”将无法达到用户请求的速度。

我想取消旧请求(并向用户发送一条消息,表明他的请求已被取消),并且仅使用计算结果答复最后一个请求。

我该怎么做?

对于带有“增量搜索”的网页,我需要这样做,因此用户可以按输入的速度尽快发送请求。这甚至是解决这个问题的正确方法吗?

0 个答案:

没有答案