在aiohttp中运行web.run_app
之前创建一些连接(到DB,AMQP等)的连接没错吗?
一些例子:
async def init_app():
app = web.Application()
app['db'] = await create_db_connection()
app['amqp'] = await create_amqp_connection()
return app
if __name__ == '__main__':
app = asyncio.get_event_loop().run_until_complete(init_app())
web.run_app(app)
它可以工作,但是我不确定是否正确。
我知道app.startup
,但是我想在启动主应用程序之前处理所有连接的错误。
答案 0 :(得分:1)
该代码是正确的,除非您不关心在服务器退出之前关闭资源。
大多数人都不会,没关系。
否则,应使用app.cleanup
信号。