コード例 #1
0
        public async Task <DbConnection> OpenConnection()
        {
            int maxRetries = 10;
            int retries    = maxRetries;

retry:
            var conn = new Npgsql.NpgsqlConnection(connectionString);

            try
            {
                await conn.OpenAsync();
            }
            catch (PostgresException ex) when(ex.IsTransient && retries > 0)
            {
                retries--;
                await conn.DisposeAsync();

                await Task.Delay((maxRetries - retries) * 100);

                goto retry;
            }
            return(conn);
        }