У меня есть программа, которая управляет промышленным производственным оборудованием и всегда выполняет задачи в цикле. Частью этих задач является проверка значений в базе данных SQLServer.
Время от времени (несколько раз в день) мы получим временные сбои, которые приводили к перезапуску программы вручную. Чтобы предотвратить это, я включил опцию EnableRetryOnFailure
для UseSqlServer
. Теперь программа не аварийно завершает работу, но мне хотелось бы, чтобы в журнале регистрировались такие временные сбои и должен был использоваться механизм повторных попыток.
Как добавить ведение журнала специально для этих повторных попыток?
Я предполагаю, что мог бы создать собственный ExecutionStrategy
и переопределить метод OnRetry. У кого-нибудь есть пример для этого? Нет ли лучшего решения?
services.AddDbContext<DbContext>(options =>
{
options.UseSqlServer(connectionString, o =>
{
o.EnableRetryOnFailure();
});
});