Removes IBatchedDatabaseServerMessenger, renames methods of IServerMessenger

This commit is contained in:
Shannon
2020-12-24 14:44:42 +11:00
parent e785ac28a3
commit 307ef4c1e0
13 changed files with 70 additions and 65 deletions

View File

@@ -21,7 +21,7 @@ namespace Umbraco.Web
/// <remarks>
/// This binds to appropriate umbraco events in order to trigger the Boot(), Sync() & FlushBatch() calls
/// </remarks>
public class BatchedDatabaseServerMessenger : DatabaseServerMessenger, IBatchedDatabaseServerMessenger
public class BatchedDatabaseServerMessenger : DatabaseServerMessenger
{
private readonly IRequestCache _requestCache;
private readonly IRequestAccessor _requestAccessor;
@@ -58,7 +58,7 @@ namespace Umbraco.Web
BatchMessage(refresher, messageType, idsA, arrayType, json);
}
public void FlushBatch()
public override void SendMessages()
{
var batch = GetBatch(false);
if (batch == null) return;
@@ -66,13 +66,14 @@ namespace Umbraco.Web
var instructions = batch.SelectMany(x => x.Instructions).ToArray();
batch.Clear();
//Write the instructions but only create JSON blobs with a max instruction count equal to MaxProcessingInstructionCount
// Write the instructions but only create JSON blobs with a max instruction count equal to MaxProcessingInstructionCount
using (var scope = ScopeProvider.CreateScope())
{
foreach (var instructionsBatch in instructions.InGroupsOf(GlobalSettings.DatabaseServerMessenger.MaxProcessingInstructionCount))
{
WriteInstructions(scope, instructionsBatch);
}
scope.Complete();
}

View File

@@ -15,7 +15,7 @@ namespace Umbraco.Infrastructure.Cache
/// </summary>
public sealed class DatabaseServerMessengerNotificationHandler : INotificationHandler<UmbracoApplicationStarting>
{
private readonly IBatchedDatabaseServerMessenger _messenger;
private readonly IServerMessenger _messenger;
private readonly IRequestAccessor _requestAccessor;
private readonly IUmbracoDatabaseFactory _databaseFactory;
private readonly IDistributedCacheBinder _distributedCacheBinder;
@@ -35,7 +35,7 @@ namespace Umbraco.Infrastructure.Cache
_databaseFactory = databaseFactory;
_distributedCacheBinder = distributedCacheBinder;
_logger = logger;
_messenger = serverMessenger as IBatchedDatabaseServerMessenger;
_messenger = serverMessenger;
}
/// <inheritdoc/>
@@ -88,6 +88,6 @@ namespace Umbraco.Infrastructure.Cache
/// <summary>
/// Clear the batch on end request
/// </summary>
private void EndRequest(object sender, UmbracoRequestEventArgs e) => _messenger?.FlushBatch();
private void EndRequest(object sender, UmbracoRequestEventArgs e) => _messenger?.SendMessages();
}
}

View File

@@ -123,9 +123,9 @@ namespace Umbraco.Infrastructure.HostedServices
finally
{
// If running on a temp context, we have to flush the messenger
if (contextReference.IsRoot && _serverMessenger is IBatchedDatabaseServerMessenger m)
if (contextReference.IsRoot)
{
m.FlushBatch();
_serverMessenger.SendMessages();
}
}
}

View File

@@ -55,7 +55,7 @@ namespace Umbraco.Core.Sync
#region IServerMessenger
public void PerformRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
public void QueueRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
if (payload == null) throw new ArgumentNullException(nameof(payload));
@@ -72,7 +72,7 @@ namespace Umbraco.Core.Sync
Deliver(refresher, MessageType.RefreshByJson, json: jsonPayload);
}
public void PerformRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
@@ -83,7 +83,7 @@ namespace Umbraco.Core.Sync
Deliver(refresher, MessageType.RefreshByInstance, getId, instances);
}
public void PerformRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances)
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
@@ -94,7 +94,7 @@ namespace Umbraco.Core.Sync
Deliver(refresher, MessageType.RefreshByInstance, getId, instances);
}
public void PerformRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
public void QueueRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
@@ -105,7 +105,7 @@ namespace Umbraco.Core.Sync
Deliver(refresher, MessageType.RemoveByInstance, getId, instances);
}
public void PerformRemove(ICacheRefresher refresher, params int[] numericIds)
public void QueueRemove(ICacheRefresher refresher, params int[] numericIds)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
@@ -114,7 +114,7 @@ namespace Umbraco.Core.Sync
Deliver(refresher, MessageType.RemoveById, numericIds.Cast<object>());
}
public void PerformRefresh(ICacheRefresher refresher, params int[] numericIds)
public void QueueRefresh(ICacheRefresher refresher, params int[] numericIds)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
@@ -123,7 +123,7 @@ namespace Umbraco.Core.Sync
Deliver(refresher, MessageType.RefreshById, numericIds.Cast<object>());
}
public void PerformRefresh(ICacheRefresher refresher, params Guid[] guidIds)
public void QueueRefresh(ICacheRefresher refresher, params Guid[] guidIds)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
@@ -132,7 +132,7 @@ namespace Umbraco.Core.Sync
Deliver(refresher, MessageType.RefreshById, guidIds.Cast<object>());
}
public void PerformRefreshAll(ICacheRefresher refresher)
public void QueueRefreshAll(ICacheRefresher refresher)
{
if (refresher == null) throw new ArgumentNullException(nameof(refresher));
@@ -346,8 +346,6 @@ namespace Umbraco.Core.Sync
DeliverRemote(refresher, messageType, idsA);
}
public abstract void Sync();
//protected virtual void Deliver(ICacheRefresher refresher, object payload)
//{
// if (servers == null) throw new ArgumentNullException("servers");
@@ -367,5 +365,8 @@ namespace Umbraco.Core.Sync
//}
#endregion
public abstract void Sync();
public abstract void SendMessages();
}
}