我正在从flask转到aiohttp,我需要在Oracle db中执行一些查询,这些查询不支持异步。所以我想知道如何在aiohttp中做到这一点?
这个怎么样?
还有其他(右)方法吗?
提前致谢!
答案 0 :(得分:4)
loop.run_in_executor协程就是这样做的:
result = await loop.run_in_executor(executor, sync_fn, *args)
使用您的示例:
executor = ThreadPoolExecutor(max_workers=1)
async def hello(request):
param1, param2 = get_params(request)
result = await app.loop.run_in_executor(executor, sync_fn, param1, param2)
return web.Response(text=result)