Текущая реализация. >
Я создаю зависимость в FastAPI для использования AsyncElasticsearch
Код: Выделить всё
async def get_es():
elastic_cred = get_elastic_cred()
es = AsyncElasticsearch(**elastic_cred)
try:
yield es
finally:
await es.close()
Код: Выделить всё
@router.get("/chat/conversations")
async def get_conversations_api(
req: ConversationsQueryParams = Depends(ConversationsQueryParams),
user: User = Depends(get_user_info),
db: PgDb = Depends(get_db),
es: AsyncElasticsearch = Depends(get_es),
):
pass
На данный момент это заставляет меня такое ощущение, что на создание ES-соединения и закрытие этого API потребуются дополнительные затраты времени.
У меня возникла другая идея использовать клиент AsyncElasticsearch в качестве синглтона, но я не уверен, что это правильный способ справиться Соединение AsyncElasticsearch, поскольку я
не нашел никаких рекомендаций в документе https://elasticsearch-py.readthedocs.io/en/v8.8.2/.
Пожалуйста, помогите мне уточнить и какой путь лучше?
Подробнее здесь: https://stackoverflow.com/questions/767 ... th-fastapi
Мобильная версия