Flush to disk async where possible

This commit is contained in:
Bond_009
2022-01-22 23:36:42 +01:00
parent cd675475bc
commit e7be01d7a5
21 changed files with 290 additions and 297 deletions

View File

@@ -128,9 +128,7 @@ namespace MediaBrowser.Providers.Manager
_metadataProviders = metadataProviders.ToArray();
_externalIds = externalIds.OrderBy(i => i.ProviderName).ToArray();
_savers = metadataSavers
.Where(i => i is not IConfigurableProvider configurable || configurable.IsEnabled)
.ToArray();
_savers = metadataSavers.ToArray();
}
/// <inheritdoc/>
@@ -653,16 +651,12 @@ namespace MediaBrowser.Providers.Manager
}
/// <inheritdoc/>
public void SaveMetadata(BaseItem item, ItemUpdateType updateType)
{
SaveMetadata(item, updateType, _savers);
}
public Task SaveMetadataAsync(BaseItem item, ItemUpdateType updateType)
=> SaveMetadataAsync(item, updateType, _savers);
/// <inheritdoc/>
public void SaveMetadata(BaseItem item, ItemUpdateType updateType, IEnumerable<string> savers)
{
SaveMetadata(item, updateType, _savers.Where(i => savers.Contains(i.Name, StringComparison.OrdinalIgnoreCase)));
}
public Task SaveMetadataAsync(BaseItem item, ItemUpdateType updateType, IEnumerable<string> savers)
=> SaveMetadataAsync(item, updateType, _savers.Where(i => savers.Contains(i.Name, StringComparison.OrdinalIgnoreCase)));
/// <summary>
/// Saves the metadata.
@@ -670,7 +664,7 @@ namespace MediaBrowser.Providers.Manager
/// <param name="item">The item.</param>
/// <param name="updateType">Type of the update.</param>
/// <param name="savers">The savers.</param>
private void SaveMetadata(BaseItem item, ItemUpdateType updateType, IEnumerable<IMetadataSaver> savers)
private async Task SaveMetadataAsync(BaseItem item, ItemUpdateType updateType, IEnumerable<IMetadataSaver> savers)
{
var libraryOptions = _libraryManager.GetLibraryOptions(item);
@@ -695,7 +689,7 @@ namespace MediaBrowser.Providers.Manager
try
{
_libraryMonitor.ReportFileSystemChangeBeginning(path);
saver.Save(item, CancellationToken.None);
await saver.SaveAsync(item, CancellationToken.None).ConfigureAwait(false);
}
catch (Exception ex)
{
@@ -710,7 +704,7 @@ namespace MediaBrowser.Providers.Manager
{
try
{
saver.Save(item, CancellationToken.None);
await saver.SaveAsync(item, CancellationToken.None).ConfigureAwait(false);
}
catch (Exception ex)
{