Fixed the issue where MySql was sometimes throwing errors about not being able to execute the retry strat

pull/4016/head
tidusjar 4 years ago
parent f50536c005
commit 530e55a39f

@ -77,12 +77,16 @@ namespace Ombi.Schedule.Jobs.Couchpotato
var movies = await _api.GetMovies(settings.FullUri, settings.ApiKey, new[] {"active"});
if (movies != null)
{
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
var strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM CouchPotatoCache");
tran.Commit();
}
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM CouchPotatoCache");
tran.Commit();
}
});
// Save
var movieIds = new List<CouchPotatoCache>();
@ -102,14 +106,17 @@ namespace Ombi.Schedule.Jobs.Couchpotato
_log.LogError("TMDBId is not > 0 for movie {0}", m.title);
}
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
var strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.CouchPotatoCache.AddRangeAsync(movieIds);
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.CouchPotatoCache.AddRangeAsync(movieIds);
await _ctx.SaveChangesAsync();
tran.Commit();
}
await _ctx.SaveChangesAsync();
tran.Commit();
}
});
await _notification.Clients.Clients(NotificationHub.AdminConnectionIds)
.SendAsync(NotificationHub.NotificationEvent, "Couch Potato Sync Finished");

@ -51,12 +51,16 @@ namespace Ombi.Schedule.Jobs.Lidarr
var albums = await _lidarrApi.GetAllAlbums(settings.ApiKey, settings.FullUri);
if (albums != null && albums.Any())
{
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
var strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM LidarrAlbumCache");
tran.Commit();
}
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM LidarrAlbumCache");
tran.Commit();
}
});
var albumCache = new List<LidarrAlbumCache>();
foreach (var a in albums)
@ -76,14 +80,17 @@ namespace Ombi.Schedule.Jobs.Lidarr
});
}
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.LidarrAlbumCache.AddRangeAsync(albumCache);
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.LidarrAlbumCache.AddRangeAsync(albumCache);
await _ctx.SaveChangesAsync();
tran.Commit();
}
await _ctx.SaveChangesAsync();
tran.Commit();
}
});
}
}
catch (System.Exception ex)

@ -50,12 +50,16 @@ namespace Ombi.Schedule.Jobs.Lidarr
var artists = await _lidarrApi.GetArtists(settings.ApiKey, settings.FullUri);
if (artists != null && artists.Any())
{
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
var strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM LidarrArtistCache");
tran.Commit();
}
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM LidarrArtistCache");
tran.Commit();
}
});
var artistCache = new List<LidarrArtistCache>();
foreach (var a in artists)
@ -71,14 +75,17 @@ namespace Ombi.Schedule.Jobs.Lidarr
});
}
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.LidarrArtistCache.AddRangeAsync(artistCache);
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.LidarrArtistCache.AddRangeAsync(artistCache);
await _ctx.SaveChangesAsync();
tran.Commit();
}
await _ctx.SaveChangesAsync();
tran.Commit();
}
});
}
}
catch (Exception ex)

@ -46,12 +46,16 @@ namespace Ombi.Schedule.Jobs.Radarr
var movies = await RadarrApi.GetMovies(settings.ApiKey, settings.FullUri);
if (movies != null)
{
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
var strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM RadarrCache");
tran.Commit();
}
// Let's remove the old cached data
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM RadarrCache");
tran.Commit();
}
});
var movieIds = new List<RadarrCache>();
foreach (var m in movies)
@ -72,14 +76,17 @@ namespace Ombi.Schedule.Jobs.Radarr
}
}
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.RadarrCache.AddRangeAsync(movieIds);
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.RadarrCache.AddRangeAsync(movieIds);
await _ctx.SaveChangesAsync();
tran.Commit();
}
await _ctx.SaveChangesAsync();
tran.Commit();
}
});
}
await OmbiQuartz.TriggerJob(nameof(IArrAvailabilityChecker), "DVR");

@ -45,12 +45,16 @@ namespace Ombi.Schedule.Jobs.SickRage
if (shows != null)
{
var srShows = shows.data.Values;
var ids = srShows.Select(x => x.tvdbid);
using (var tran = await _ctx.Database.BeginTransactionAsync())
var ids = srShows.Select(x => x.tvdbid);
var strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM SickRageCache");
tran.Commit();
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM SickRageCache");
tran.Commit();
}
});
var entites = ids.Select(id => new SickRageCache { TvDbId = id }).ToList();
@ -77,13 +81,16 @@ namespace Ombi.Schedule.Jobs.SickRage
}
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.SickRageEpisodeCache.AddRangeAsync(episodesToAdd);
await _ctx.SaveChangesAsync();
tran.Commit();
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.SickRageEpisodeCache.AddRangeAsync(episodesToAdd);
await _ctx.SaveChangesAsync();
tran.Commit();
}
});
}
}
catch (Exception e)

@ -48,12 +48,16 @@ namespace Ombi.Schedule.Jobs.Sonarr
if (series != null)
{
var sonarrSeries = series as ImmutableHashSet<SonarrSeries> ?? series.ToImmutableHashSet();
var ids = sonarrSeries.Select(x => x.tvdbId);
using (var tran = await _ctx.Database.BeginTransactionAsync())
var ids = sonarrSeries.Select(x => x.tvdbId);
var strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM SonarrCache");
tran.Commit();
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM SonarrCache");
tran.Commit();
}
});
var existingSeries = await _ctx.SonarrCache.Select(x => x.TvDbId).ToListAsync();
@ -62,11 +66,15 @@ namespace Ombi.Schedule.Jobs.Sonarr
await _ctx.SonarrCache.AddRangeAsync(entites);
entites.Clear();
using (var tran = await _ctx.Database.BeginTransactionAsync())
strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM SonarrEpisodeCache");
tran.Commit();
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.Database.ExecuteSqlRawAsync("DELETE FROM SonarrEpisodeCache");
tran.Commit();
}
});
foreach (var s in sonarrSeries)
{
@ -116,14 +124,17 @@ namespace Ombi.Schedule.Jobs.Sonarr
// }
//}
using (var tran = await _ctx.Database.BeginTransactionAsync())
strat = _ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await _ctx.SonarrEpisodeCache.AddRangeAsync(episodesToAdd);
_log.LogDebug("Commiting the transaction");
await _ctx.SaveChangesAsync();
tran.Commit();
}
using (var tran = await _ctx.Database.BeginTransactionAsync())
{
await _ctx.SonarrEpisodeCache.AddRangeAsync(episodesToAdd);
_log.LogDebug("Commiting the transaction");
await _ctx.SaveChangesAsync();
tran.Commit();
}
});
}
}

@ -24,20 +24,16 @@ namespace Ombi.Store.Repository
public async Task Record(AuditType type, AuditArea area, string description, string user)
{
using (var tran = await Ctx.Database.BeginTransactionAsync())
await Ctx.Audit.AddAsync(new Audit
{
await Ctx.Audit.AddAsync(new Audit
{
User = user,
AuditArea = area,
AuditType = type,
DateTime = DateTime.UtcNow,
Description = description
});
User = user,
AuditArea = area,
AuditType = type,
DateTime = DateTime.UtcNow,
Description = description
});
await Ctx.SaveChangesAsync();
tran.Commit();
}
await Ctx.SaveChangesAsync();
}
}
}

@ -45,7 +45,7 @@ namespace Ombi
}
});
Console.WriteLine(HelpOutput(result));
@ -67,7 +67,7 @@ namespace Ombi
if (migrate)
{
Console.WriteLine("Migrate in progress...");
var migrationTasks = new List<Task>();
var externalDb = provider.GetRequiredService<ExternalContext>();
var ombiDb = provider.GetRequiredService<OmbiContext>();
@ -93,12 +93,16 @@ namespace Ombi
Type = ConfigurationTypes.Url,
Value = "http://*:5000"
};
using (var tran = await settingsDb.Database.BeginTransactionAsync())
var strat = settingsDb.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
settingsDb.ApplicationConfigurations.Add(url);
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
using (var tran = await settingsDb.Database.BeginTransactionAsync())
{
settingsDb.ApplicationConfigurations.Add(url);
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
});
urlValue = url.Value;
}
@ -106,12 +110,15 @@ namespace Ombi
if (!url.Value.Equals(host))
{
url.Value = UrlArgs;
using (var tran = await settingsDb.Database.BeginTransactionAsync())
var strat = settingsDb.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
using (var tran = await settingsDb.Database.BeginTransactionAsync())
{
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
});
urlValue = url.Value;
}
@ -129,24 +136,30 @@ namespace Ombi
Type = ConfigurationTypes.BaseUrl,
Value = baseUrl
};
using (var tran = await settingsDb.Database.BeginTransactionAsync())
var strat = settingsDb.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
settingsDb.ApplicationConfigurations.Add(dbBaseUrl);
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
using (var tran = await settingsDb.Database.BeginTransactionAsync())
{
settingsDb.ApplicationConfigurations.Add(dbBaseUrl);
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
});
}
}
else if (baseUrl.HasValue() && !baseUrl.Equals(dbBaseUrl.Value))
{
dbBaseUrl.Value = baseUrl;
using (var tran = await settingsDb.Database.BeginTransactionAsync())
var strat = settingsDb.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
using (var tran = await settingsDb.Database.BeginTransactionAsync())
{
await settingsDb.SaveChangesAsync();
await tran.CommitAsync();
}
});
}
Console.WriteLine($"We are running on {urlValue}");
@ -164,13 +177,16 @@ namespace Ombi
Type = ConfigurationTypes.SecurityToken,
Value = Guid.NewGuid().ToString("N")
};
using (var tran = await ctx.Database.BeginTransactionAsync())
var strat = ctx.Database.CreateExecutionStrategy();
await strat.ExecuteAsync(async () =>
{
ctx.ApplicationConfigurations.Add(securityToken);
await ctx.SaveChangesAsync();
await tran.CommitAsync();
}
using (var tran = await ctx.Database.BeginTransactionAsync())
{
ctx.ApplicationConfigurations.Add(securityToken);
await ctx.SaveChangesAsync();
await tran.CommitAsync();
}
});
}
instance.SecurityKey = securityToken.Value;

Loading…
Cancel
Save