私はフラスコから aiohttp に移行しており、非同期をサポートしていない Oracle db でいくつかのクエリを実行する必要があります。それで、aiohttpでそれを行う方法を知りたいですか?
これはどう?
または、それを行う他の(正しい)方法はありますか?
前もって感謝します!
私はフラスコから aiohttp に移行しており、非同期をサポートしていない Oracle db でいくつかのクエリを実行する必要があります。それで、aiohttpでそれを行う方法を知りたいですか?
これはどう?
または、それを行う他の(正しい)方法はありますか?
前もって感謝します!
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)