mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-16 02:02:55 -07:00
Fixed the issue where MySql was sometimes throwing errors about not being able to execute the retry strat
This commit is contained in:
parent
f50536c005
commit
530e55a39f
8 changed files with 170 additions and 112 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue