Closed Masynchin closed 1 year ago
Сервисы (в частности, БД подписчиков и API погоды) создают ресурсы при каждом запросе:
https://github.com/Masynchin/CheWeatherBot/blob/df8ac222cffa9b2f3f9fb7690e5856b4b7b9b586/app/db.py#L31-L36
aiohttp.ClientSession
https://github.com/Masynchin/CheWeatherBot/blob/df8ac222cffa9b2f3f9fb7690e5856b4b7b9b586/app/weather.py#L104-L110
Аллоцировать ресурсы в main один раз, и единожды передавать их в сервисы, примерно так:
main
async def main(): async with db.connect(...) as conn, aiohttp.ClientSession(...) as session: subs = Subscribers(conn) weather = OwmWeather(session)
В чём проблема?
Сервисы (в частности, БД подписчиков и API погоды) создают ресурсы при каждом запросе:
https://github.com/Masynchin/CheWeatherBot/blob/df8ac222cffa9b2f3f9fb7690e5856b4b7b9b586/app/db.py#L31-L36
aiohttp.ClientSession
для каждого запроса:https://github.com/Masynchin/CheWeatherBot/blob/df8ac222cffa9b2f3f9fb7690e5856b4b7b9b586/app/weather.py#L104-L110
Решение?
Аллоцировать ресурсы в
main
один раз, и единожды передавать их в сервисы, примерно так: