ソースを参照

move a computation out of transaction and skip season updates if name matches

cvium 1 年間 前
コミット
9a246166b0

+ 2 - 1
Emby.Server.Implementations/Data/SqliteItemRepository.cs

@@ -564,11 +564,12 @@ namespace Emby.Server.Implementations.Data
 
 
             CheckDisposed();
             CheckDisposed();
 
 
+            var images = SerializeImages(item.ImageInfos);
             using var connection = GetConnection();
             using var connection = GetConnection();
             using var transaction = connection.BeginTransaction();
             using var transaction = connection.BeginTransaction();
             using var saveImagesStatement = PrepareStatement(connection, "Update TypedBaseItems set Images=@Images where guid=@Id");
             using var saveImagesStatement = PrepareStatement(connection, "Update TypedBaseItems set Images=@Images where guid=@Id");
             saveImagesStatement.TryBind("@Id", item.Id);
             saveImagesStatement.TryBind("@Id", item.Id);
-            saveImagesStatement.TryBind("@Images", SerializeImages(item.ImageInfos));
+            saveImagesStatement.TryBind("@Images", images);
 
 
             saveImagesStatement.ExecuteNonQuery();
             saveImagesStatement.ExecuteNonQuery();
             transaction.Commit();
             transaction.Commit();

+ 8 - 1
MediaBrowser.Providers/TV/SeriesMetadataService.cs

@@ -1,5 +1,6 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
 
 
+using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Globalization;
 using System.Linq;
 using System.Linq;
@@ -227,7 +228,13 @@ namespace MediaBrowser.Providers.TV
                 }
                 }
                 else
                 else
                 {
                 {
-                    existingSeason.Name = GetValidSeasonNameForSeries(series, seasonName, seasonNumber);
+                    var name = GetValidSeasonNameForSeries(series, seasonName, seasonNumber);
+                    if (string.Equals(existingSeason.Name, name, StringComparison.Ordinal))
+                    {
+                        continue;
+                    }
+
+                    existingSeason.Name = name;
                     await existingSeason.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, cancellationToken).ConfigureAwait(false);
                     await existingSeason.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, cancellationToken).ConfigureAwait(false);
                 }
                 }
             }
             }