From 08b7e8f540ecc652b8027301c117cf3952ec69a3 Mon Sep 17 00:00:00 2001 From: Jamie Rees Date: Tue, 4 Jun 2019 21:07:20 +0100 Subject: [PATCH 1/3] Add a internal retry when we have a locked db --- src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs | 4 ++-- src/Ombi.Store/Ombi.Store.csproj | 1 + src/Ombi.Store/Repository/BaseRepository.cs | 14 +++++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs index 5fcac05cc..3ce7307fe 100644 --- a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs +++ b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs @@ -196,7 +196,7 @@ namespace Ombi.Schedule.Jobs.Plex } contentToAdd.Clear(); } - if (count > 200) + if (count > 30) { await Repo.SaveChangesAsync(); @@ -233,7 +233,7 @@ namespace Ombi.Schedule.Jobs.Plex } contentToAdd.Clear(); } - if (count > 200) + if (count > 30) { await Repo.SaveChangesAsync(); } diff --git a/src/Ombi.Store/Ombi.Store.csproj b/src/Ombi.Store/Ombi.Store.csproj index 8dfcc1c28..dd13d5ea7 100644 --- a/src/Ombi.Store/Ombi.Store.csproj +++ b/src/Ombi.Store/Ombi.Store.csproj @@ -16,6 +16,7 @@ + diff --git a/src/Ombi.Store/Repository/BaseRepository.cs b/src/Ombi.Store/Repository/BaseRepository.cs index 0741a79b6..dabcb72b9 100644 --- a/src/Ombi.Store/Repository/BaseRepository.cs +++ b/src/Ombi.Store/Repository/BaseRepository.cs @@ -3,11 +3,13 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; +using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Query; using Ombi.Helpers; using Ombi.Store.Context; using Ombi.Store.Entities; +using Polly; namespace Ombi.Store.Repository { @@ -83,7 +85,17 @@ namespace Ombi.Store.Repository protected async Task InternalSaveChanges() { - return await _ctx.SaveChangesAsync(); + var policy = Policy + .Handle() + .WaitAndRetryAsync(new[] + { + TimeSpan.FromSeconds(1), + TimeSpan.FromSeconds(2), + TimeSpan.FromSeconds(3) + }); + + var result = await policy.ExecuteAndCaptureAsync(async () => await _ctx.SaveChangesAsync()); + return result.Result; } From d7e2e2e3324d66f2f293444502be5332ca6e008e Mon Sep 17 00:00:00 2001 From: Jamie Rees Date: Tue, 4 Jun 2019 22:13:41 +0100 Subject: [PATCH 2/3] Fixed #2995 --- src/Ombi.Schedule/Jobs/Lidarr/LidarrAlbumSync.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi.Schedule/Jobs/Lidarr/LidarrAlbumSync.cs b/src/Ombi.Schedule/Jobs/Lidarr/LidarrAlbumSync.cs index 2a50b5b38..b10311267 100644 --- a/src/Ombi.Schedule/Jobs/Lidarr/LidarrAlbumSync.cs +++ b/src/Ombi.Schedule/Jobs/Lidarr/LidarrAlbumSync.cs @@ -60,7 +60,7 @@ namespace Ombi.Schedule.Jobs.Lidarr ArtistId = a.artistId, ForeignAlbumId = a.foreignAlbumId, ReleaseDate = a.releaseDate, - TrackCount = a.currentRelease.trackCount, + TrackCount = a.currentRelease?.trackCount ?? 0, Monitored = a.monitored, Title = a.title, PercentOfTracks = a.statistics?.percentOfEpisodes ?? 0m, From 135e9842f66fdd2053a330ba239f96b5af3d5ad6 Mon Sep 17 00:00:00 2001 From: Jamie Rees Date: Wed, 5 Jun 2019 09:14:42 +0100 Subject: [PATCH 3/3] Fixed build --- src/Ombi.Api/Ombi.Api.csproj | 2 +- src/Ombi.Schedule/IocJobFactory.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Ombi.Api/Ombi.Api.csproj b/src/Ombi.Api/Ombi.Api.csproj index e20dd6ccd..c7b905522 100644 --- a/src/Ombi.Api/Ombi.Api.csproj +++ b/src/Ombi.Api/Ombi.Api.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Ombi.Schedule/IocJobFactory.cs b/src/Ombi.Schedule/IocJobFactory.cs index 83ab5a974..795c1fec5 100644 --- a/src/Ombi.Schedule/IocJobFactory.cs +++ b/src/Ombi.Schedule/IocJobFactory.cs @@ -15,7 +15,7 @@ namespace Ombi.Schedule } public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler) { - var scopeFactory = _factory.GetService(); + var scopeFactory = _factory.GetService(); var scope = scopeFactory.CreateScope(); var scopedContainer = scope.ServiceProvider;