using MySqlConnector; using Polly; using Polly.Retry; using System; using System.Collections.Generic; namespace Sony.Filtr.Database { public class FaultHandlingPolicy { private const int _DeadlockErrorCode = 1213; private const int _LockWaitTimeoutErrorCode = 1205; private static readonly List _RetryErrorCodes = new List() { _DeadlockErrorCode, _LockWaitTimeoutErrorCode }; public const int RetryCount = 5; public static readonly RetryPolicy MySqlRetryPolicyAsync = Policy.Handle(exception => _RetryErrorCodes.Contains(exception.Number)).WaitAndRetryAsync(RetryCount, retryAttempt => TimeSpan.FromSeconds(retryAttempt)); public static readonly RetryPolicy MySqlRetryPolicy = Policy.Handle(exception => _RetryErrorCodes.Contains(exception.Number)).WaitAndRetry(RetryCount, retryAttempt => TimeSpan.FromSeconds(retryAttempt)); } }