Cache: Add awaits to memory cache rebuilds to fix race conditions (#20960)
* Await rebuilds and fix multiple open DataReaders
* Add additional missing awaits
(cherry picked from commit eaf5960a4d)
This commit is contained in:
@@ -239,8 +239,8 @@ public sealed class ContentCacheRefresher : PayloadCacheRefresherBase<ContentCac
|
||||
|
||||
if (payload.ChangeTypes.HasType(TreeChangeTypes.RefreshAll))
|
||||
{
|
||||
_documentNavigationManagementService.RebuildAsync();
|
||||
_documentNavigationManagementService.RebuildBinAsync();
|
||||
_documentNavigationManagementService.RebuildAsync().GetAwaiter().GetResult();
|
||||
_documentNavigationManagementService.RebuildBinAsync().GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
if (payload.Key is null)
|
||||
|
||||
@@ -136,8 +136,8 @@ public sealed class ContentTypeCacheRefresher : PayloadCacheRefresherBase<Conten
|
||||
IEnumerable<int> documentTypeIds = payloads.Where(x => x.ItemType == nameof(IContentType)).Select(x => x.Id);
|
||||
IEnumerable<int> mediaTypeIds = payloads.Where(x => x.ItemType == nameof(IMediaType)).Select(x => x.Id);
|
||||
|
||||
_documentCacheService.RebuildMemoryCacheByContentTypeAsync(documentTypeIds);
|
||||
_mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds);
|
||||
_documentCacheService.RebuildMemoryCacheByContentTypeAsync(documentTypeIds).GetAwaiter().GetResult();
|
||||
_mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds).GetAwaiter().GetResult();
|
||||
});
|
||||
|
||||
// now we can trigger the event
|
||||
|
||||
@@ -120,7 +120,7 @@ public sealed class DataTypeCacheRefresher : PayloadCacheRefresherBase<DataTypeC
|
||||
IEnumerable<int> mediaTypeIds = removedContentTypes
|
||||
.Where(x => x.ItemType == PublishedItemType.Media)
|
||||
.Select(x => x.Id);
|
||||
_mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds);
|
||||
_mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds).GetAwaiter().GetResult();
|
||||
});
|
||||
base.Refresh(payloads);
|
||||
}
|
||||
|
||||
@@ -194,8 +194,8 @@ public sealed class MediaCacheRefresher : PayloadCacheRefresherBase<MediaCacheRe
|
||||
|
||||
if (payload.ChangeTypes.HasType(TreeChangeTypes.RefreshAll))
|
||||
{
|
||||
_mediaNavigationManagementService.RebuildAsync();
|
||||
_mediaNavigationManagementService.RebuildBinAsync();
|
||||
_mediaNavigationManagementService.RebuildAsync().GetAwaiter().GetResult();
|
||||
_mediaNavigationManagementService.RebuildBinAsync().GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
if (payload.ChangeTypes.HasType(TreeChangeTypes.RefreshNode))
|
||||
|
||||
Reference in New Issue
Block a user