3

我正在从烧瓶转移到 aiohttp,我需要在不支持异步的 Oracle 数据库中执行一些查询。所以我想知道如何在 aiohttp 中做到这一点?

这个怎么样?

http://pastebin.com/nbWABbvK

还是有其他(正确的)方法可以做到这一点?

提前致谢!

4

1 回答 1

7

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)
于 2016-07-23T00:53:46.217 回答