3

私はフラスコから aiohttp に移行しており、非同期をサポートしていない Oracle db でいくつかのクエリを実行する必要があります。それで、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 に答える