#c# #asp.net-core #botframework #azure-cosmosdb
#c# #asp.net-ядро #botframework #azure-cosmosdb
Вопрос:
У меня есть чат-бот, данные для чат-бота хранятся в базе данных Azure Cosmos. Если я изменю данные в Cosmos DB, мне придется перезапустить свое веб-приложение, потому что служба, используемая для извлечения данных из Cosmos, зарегистрирована Startup.cs
как одноэлементная.
Итак, мое требование — обновить свойства сервиса (данные) из Cosmos без перезапуска приложения; также это не должно приводить к тупиковой ситуации.
Может ли кто-нибудь помочь мне со способом достижения этой цели?
Комментарии:
1. что-то может быть подключено только при запуске приложения, например, политика CORS и т. Д. В старом asp.net мы используем, чтобы положить app_offline.htm до завершения нового развертывания. это, кажется, все еще доступно, как я видел docs.microsoft.com/en-us/aspnet/core/host-and-deploy /…
2. Похоже, что ваш клиент CosmosDB кэширует результаты своих запросов. Вы не должны этого делать и каждый раз запрашивать базу данных, чтобы получать самые последние результаты. Таким образом, ваш клиент все еще может быть синглетом.
3. Поможет ли вам приведенный ниже ответ?
Ответ №1:
CosmosClient предоставляет логическое представление учетной записи Azure Cosmos DB на стороне клиента. Этот клиент можно использовать для настройки и выполнения запросов в службе базы данных Azure Cosmos DB.
CosmosClient является потокобезопасным. Рекомендуется поддерживать один экземпляр CosmosClient за все время существования приложения, что обеспечивает эффективное управление соединениями и производительность.
Клиент CosmosDB получит данные, которые фактически присутствуют в базе данных, если вы не кэшируете их. Кроме того, убедитесь, что вы используете правильный уровень согласованности и избыточности.
Комментарии:
1. Помогает ли это вам?