Создайте соединения БД перед запуском цикла aiohttp - PullRequest
0 голосов
/ 21 сентября 2019

не является ли ошибкой создание некоторых соединений (с БД, AMQP и т. Д.) Перед запуском web.run_app в aiohttp.Пример:

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, но мне хотелось бы обработать все ошибки соединения перед запуском основного приложения.

1 Ответ

1 голос
/ 23 сентября 2019

Код верен, пока вы не заботитесь о закрытии ресурсов перед выходом из сервера.

У большинства людей нет, это нормально.

В противном случае следует использовать сигнал app.cleanup.

...