Files
Umbraco-CMS/src/Umbraco.PublishedCache.HybridCache/NotificationHandlers/HybridCacheStartupNotificationHandler.cs
Nikolaj Geisle fc0e62faa1 V15: Reimplement cache startup handler (#17279)
* Reimplement cache startup handler

* Remove duplicate handle

* Fixed missing scope and ordering of notifications

* formatting

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2024-10-15 12:02:48 +02:00

33 lines
1.1 KiB
C#

using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.PublishedCache;
using Umbraco.Cms.Core.Services;
namespace Umbraco.Cms.Infrastructure.HybridCache.NotificationHandlers;
/// <summary>
/// Rebuilds the database cache if required when the serializer changes
/// </summary>
public class HybridCacheStartupNotificationHandler : INotificationAsyncHandler<UmbracoApplicationStartingNotification>
{
private readonly IDatabaseCacheRebuilder _databaseCacheRebuilder;
private readonly IRuntimeState _runtimeState;
public HybridCacheStartupNotificationHandler(IDatabaseCacheRebuilder databaseCacheRebuilder, IRuntimeState runtimeState)
{
_databaseCacheRebuilder = databaseCacheRebuilder;
_runtimeState = runtimeState;
}
public Task HandleAsync(UmbracoApplicationStartingNotification notification, CancellationToken cancellationToken)
{
if (_runtimeState.Level > RuntimeLevel.Install)
{
_databaseCacheRebuilder.RebuildDatabaseCacheIfSerializerChanged();
}
return Task.CompletedTask;
}
}