我正在运行一个http服务器来处理到达events
端点的松弛API调用。slack文档建议应用程序(此服务器)需要在3秒内确认收到请求(这可以通过一个空主体和status=200来实现)。我对请求的处理时间超过3秒,因此我希望在收到带有空白响应的请求后立即返回,然后处理数据。这是我正在使用的代码:
from aiohttp import web
routes = web.RouteTableDef()
app = web.Application()
async def process(data):
# Do Some Processing which takes more than 5 seconds
@routes.post('/events')
async def handle_event(request):
post_data = await request.json()
await process(post_data)
return web.Response(body="", status=200)
# I want to do this immediately then process() data afterwards
app.add_routes(routes)
web.run_app(app, port=3000)
如何立即返回并处理数据(包括一些数据库查询和使用API发送slack消息)
我尝试创建一个asyncio任务,但在该任务完成执行之前,返回不会发生(这是可以理解的):
process_task = asyncio.create_task(process)
await task
目前没有回答
相关问题 更多 >
编程相关推荐