Django - цикл событий закрывается на пользовательском объекте
Я использую приложение django, которое импортирует пользовательскую библиотеку. Библиотека предоставляет фабричный класс, который также использует библиотеки AIOHttp и Asyncio для HTTP вызовов.
Когда я пытаюсь сделать запрос (из views.py), я получаю ошибку "цикл события закрыт". Если я возьму тот же код из views.py и запрошу билет непосредственно в apps.py, где происходит начальное создание фабрики, он работает нормально. Я предполагаю, что что-то не сохраняется, как я думал. Это не более чем класс, который хранит объект aioHttp.ClientSession(), который я хочу настроить и сохранить один раз. Таким образом, другие части моего приложения смогут извлечь выгоду из таких вещей, как пул соединений и других пользовательских объектов, которые может создать фабрика.
Хотя это прекрасно работает из apps.py, попытка вытащить сохраненный объект ClientSession() из apps.py почему-то не работает в views.py. Есть идеи, в чем может быть проблема?
apps.py Определяет, что делать, когда приложение готово
def ready(self):
asyncio.run(self._ready())
async def _ready(self):
creds = load_creds_from_file('creds.json')
self.factory = TestFactory(creds)
await self.factory.start()
self.tickets = self.factory.get_ticket()
print("setup completed...")
views.py
Попытка получить доступ к инстанцированным объектам, хранящимся в apps.py
my_app_config = apps.get_app_config('api')
tickets = my_app_config.tickets
results = await tickets.find_by_number('IN1234')