Обработка SqlConnections в настоящее время осуществляется путем открытия соединения в первый раз, когда оно необходимо, с помощью специального цикла повтора, а затем сохранения открытого соединения в HttpContext до конца запроса, после чего соединение удаляется.
Я считаю, что способ предотвратить проблемы с истощением пула соединений - это держать соединение закрытым, а затем позволить Быстро открывайте и закрывайте его по мере необходимости.
Я думал, что было бы предпочтительнее сохранить политику повторных попыток, чтобы сделать систему более надежной.
Для этого я реализовал оболочку, расширяющую DbConnection, которая принимает SqlConnection в конструкторе.
Моя политика повторных попыток выглядит следующим образом:
Код: Выделить всё
private readonly AsyncRetryPolicy _asyncRetryPolicy = Policy.Handle().Or().WaitAndRetryAsync(3, i => TimeSpan.FromSeconds(1 * i));
Мой второй вопрос: как эта политика повторных попыток ведет себя с частью «Connection Timeout=30» моей строки подключения?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ith-dapper
Мобильная версия