Превышено максимальное количество повторных попыток (6) при выполнении операций с базой данных с помощью CosmosExecutionStrategy
Я работаю над проектом разработки API с использованием ASP.NET Core 2.2, GraphQL.NET, CosmosDB, Entity Framework Core (Microsoft.EntityFrameworkCore.Cosmos v2.2.4).
При тестировании метода API, который извлекает данные из AzureComosDB, иногда появляется такая ошибка:
Microsoft.EntityFrameworkCore.Storage.RetryLimitExceededException: "Превышено максимальное количество повторных попыток (6) при выполнении операций с базой данных с помощью CosmosExecutionStrategy". См. Внутреннее исключение для последней ошибки. '
Я не уверен, почему эта ошибка периодически появляется.
Может ли кто-нибудь помочь мне здесь, предоставив некоторые рекомендации по решению этой проблемы?
2 ответа
Я хотел бы узнать больше о файле контекста, поскольку в ошибке говорится:
"Превышено максимальное количество попыток (6)"
`. Это может произойти, если вы пытаетесь повторно развернуть базу данных при каждом запросе, поэтому, учитывая, что вы уже развернули базу данных в cosmosdb, рекомендуется удалить Database.EnsureCreated(), так как это создаст проблемы с производительностью.
Обратитесь к этой документации для получения дополнительной информации https://docs.microsoft.com/en-us/ef/core/providers/cosmos/?tabs=dotnet-core-cli
Прежде всего, проверили ли вы внутреннее исключение, указанное в ошибке?
Microsoft.EntityFrameworkCore.Storage.RetryLimitExceededException: "Превышено максимальное количество повторных попыток (6) при выполнении операций с базой данных с помощью CosmosExecutionStrategy". См. Внутреннее исключение для последней ошибки. '
это может дать ключ к разгадке того, почему он терпит неудачу.
Теперь эта ошибка вызвана повторной попыткой космоса. Если операция завершится неудачно, она будет повторяться до шести раз.
Вы можете изменить эту стратегию, но значение по умолчанию можно найти здесь. Тот факт, что это повторяется, указывает на то, что это ошибка, которая может исчезнуть при повторной попытке. Хороший пример - сбой в подключении к сети (например, при плохом сигнале Wi-Fi). Другой причиной может быть тот факт, что запросы превышают установленные лимиты единицы запроса.