Looking for examples of using aiopg with aiohttp and non-async startup.
Ray Cote
rgacote at appropriatesolutions.com
Fri Feb 26 09:52:12 EST 2016
Answer (obvious after a refreshing sleep):
Just run a separate async pool connection prior to kicking off the aiohttp
web application.
The startup now looks like:
async def connect():
return await aiopg.create_pool(…)
if __name__ == “__main__”:
loop = asyncio.get_event_loop()
pool = loop.run_until_complete(connect())
app = web.Application()
app["pool"] = pool
app.router.add_route(‘POST', '/pv/v1/', handle_v1)
web.run_app(app)
Then, in the handle_v1 code:
pool = request.app["pool"]
connection = await pool.acquire()
cursor = await connection.cursor()
—r
On Thu, Feb 25, 2016 at 5:23 PM, Ray Cote <rgacote at appropriatesolutions.com>
wrote:
> Hello:
>
> I have an aiohttp project that starts in the usual way:
>
> app = web.Application()
> app.router.add_route(‘POST”, ‘/‘, handler)
> web.run_app(app)
>
> My question is, how do I work with an aiopg.pool with aiohttp?
> There only seems to be async interfaces into aiopg — but I don’t want to
> create the pool in my handler since that requires a connection on each
> transaction.
>
> I found one example that was
> app[“db”] = await aiopg.create_pool(dsn)
> but that doesn’t seen correct since we’re not yet in a loop.
>
> Can someone please provide an example showing the proper way to integrate
> aiopg pool into an aiohttp web application?
>
> Regards
> —Ray
>
> --
> Raymond Cote, President
> voice: +1.603.924.6079 email: rgacote at AppropriateSolutions.com skype:
> ray.cote
>
>
>
--
Raymond Cote, President
voice: +1.603.924.6079 email: rgacote at AppropriateSolutions.com skype:
ray.cote
More information about the Python-list
mailing list