Removes IBatchedDatabaseServerMessenger, renames methods of IServerMessenger
This commit is contained in:
@@ -46,7 +46,7 @@ namespace Umbraco.Web.Cache
|
||||
{
|
||||
if (refresherGuid == Guid.Empty || instances.Length == 0 || getNumericId == null) return;
|
||||
|
||||
_serverMessenger.PerformRefresh(
|
||||
_serverMessenger.QueueRefresh(
|
||||
GetRefresherById(refresherGuid),
|
||||
getNumericId,
|
||||
instances);
|
||||
@@ -61,7 +61,7 @@ namespace Umbraco.Web.Cache
|
||||
{
|
||||
if (refresherGuid == Guid.Empty || id == default(int)) return;
|
||||
|
||||
_serverMessenger.PerformRefresh(
|
||||
_serverMessenger.QueueRefresh(
|
||||
GetRefresherById(refresherGuid),
|
||||
id);
|
||||
}
|
||||
@@ -75,7 +75,7 @@ namespace Umbraco.Web.Cache
|
||||
{
|
||||
if (refresherGuid == Guid.Empty || id == Guid.Empty) return;
|
||||
|
||||
_serverMessenger.PerformRefresh(
|
||||
_serverMessenger.QueueRefresh(
|
||||
GetRefresherById(refresherGuid),
|
||||
id);
|
||||
}
|
||||
@@ -86,7 +86,7 @@ namespace Umbraco.Web.Cache
|
||||
{
|
||||
if (refresherGuid == Guid.Empty || payload == null) return;
|
||||
|
||||
_serverMessenger.PerformRefresh(
|
||||
_serverMessenger.QueueRefresh(
|
||||
GetRefresherById(refresherGuid),
|
||||
payload);
|
||||
}
|
||||
@@ -97,7 +97,7 @@ namespace Umbraco.Web.Cache
|
||||
{
|
||||
if (refresherGuid == Guid.Empty || payloads == null) return;
|
||||
|
||||
_serverMessenger.PerformRefresh(
|
||||
_serverMessenger.QueueRefresh(
|
||||
GetRefresherById(refresherGuid),
|
||||
payloads.ToArray());
|
||||
}
|
||||
@@ -125,7 +125,7 @@ namespace Umbraco.Web.Cache
|
||||
{
|
||||
if (refresherGuid == Guid.Empty) return;
|
||||
|
||||
_serverMessenger.PerformRefreshAll(
|
||||
_serverMessenger.QueueRefreshAll(
|
||||
GetRefresherById(refresherGuid));
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ namespace Umbraco.Web.Cache
|
||||
{
|
||||
if (refresherGuid == Guid.Empty || id == default(int)) return;
|
||||
|
||||
_serverMessenger.PerformRemove(
|
||||
_serverMessenger.QueueRemove(
|
||||
GetRefresherById(refresherGuid),
|
||||
id);
|
||||
}
|
||||
@@ -155,7 +155,7 @@ namespace Umbraco.Web.Cache
|
||||
/// </remarks>
|
||||
public void Remove<T>(Guid refresherGuid, Func<T, int> getNumericId, params T[] instances)
|
||||
{
|
||||
_serverMessenger.PerformRemove(
|
||||
_serverMessenger.QueueRemove(
|
||||
GetRefresherById(refresherGuid),
|
||||
getNumericId,
|
||||
instances);
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Umbraco.Core.Sync
|
||||
{
|
||||
/// <summary>
|
||||
/// Holds a list of callbacks associated with implementations of <see cref="IBatchedDatabaseServerMessenger"/>.
|
||||
/// Holds a list of callbacks associated with implementations of <see cref="IServerMessenger"/>.
|
||||
/// </summary>
|
||||
public class DatabaseServerMessengerCallbacks
|
||||
{
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
namespace Umbraco.Core.Sync
|
||||
{
|
||||
/// <summary>
|
||||
/// An <see cref="IServerMessenger"/> implementation that works by storing messages in the database.
|
||||
/// </summary>
|
||||
public interface IBatchedDatabaseServerMessenger : IServerMessenger
|
||||
{
|
||||
// TODO: We only ever use IBatchedDatabaseServerMessenger so just combine these interfaces
|
||||
|
||||
void FlushBatch();
|
||||
}
|
||||
}
|
||||
@@ -14,12 +14,17 @@ namespace Umbraco.Core.Sync
|
||||
/// </summary>
|
||||
void Sync();
|
||||
|
||||
/// <summary>
|
||||
/// Called to send/commit the queued messages created with the Perform methods
|
||||
/// </summary>
|
||||
void SendMessages();
|
||||
|
||||
/// <summary>
|
||||
/// Notifies the distributed cache, for a specified <see cref="ICacheRefresher"/>.
|
||||
/// </summary>
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
/// <param name="payload">The notification content.</param>
|
||||
void PerformRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload);
|
||||
void QueueRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies the distributed cache of specified item invalidation, for a specified <see cref="ICacheRefresher"/>.
|
||||
@@ -28,7 +33,7 @@ namespace Umbraco.Core.Sync
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
/// <param name="getNumericId">A function returning the unique identifier of items.</param>
|
||||
/// <param name="instances">The invalidated items.</param>
|
||||
void PerformRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances);
|
||||
void QueueRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies the distributed cache of specified item invalidation, for a specified <see cref="ICacheRefresher"/>.
|
||||
@@ -37,7 +42,7 @@ namespace Umbraco.Core.Sync
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
/// <param name="getGuidId">A function returning the unique identifier of items.</param>
|
||||
/// <param name="instances">The invalidated items.</param>
|
||||
void PerformRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances);
|
||||
void QueueRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies all servers of specified items removal, for a specified <see cref="ICacheRefresher"/>.
|
||||
@@ -46,33 +51,33 @@ namespace Umbraco.Core.Sync
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
/// <param name="getNumericId">A function returning the unique identifier of items.</param>
|
||||
/// <param name="instances">The removed items.</param>
|
||||
void PerformRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances);
|
||||
void QueueRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies all servers of specified items removal, for a specified <see cref="ICacheRefresher"/>.
|
||||
/// </summary>
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
/// <param name="numericIds">The unique identifiers of the removed items.</param>
|
||||
void PerformRemove(ICacheRefresher refresher, params int[] numericIds);
|
||||
void QueueRemove(ICacheRefresher refresher, params int[] numericIds);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies all servers of specified items invalidation, for a specified <see cref="ICacheRefresher"/>.
|
||||
/// </summary>
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
/// <param name="numericIds">The unique identifiers of the invalidated items.</param>
|
||||
void PerformRefresh(ICacheRefresher refresher, params int[] numericIds);
|
||||
void QueueRefresh(ICacheRefresher refresher, params int[] numericIds);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies all servers of specified items invalidation, for a specified <see cref="ICacheRefresher"/>.
|
||||
/// </summary>
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
/// <param name="guidIds">The unique identifiers of the invalidated items.</param>
|
||||
void PerformRefresh(ICacheRefresher refresher, params Guid[] guidIds);
|
||||
void QueueRefresh(ICacheRefresher refresher, params Guid[] guidIds);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies all servers of a global invalidation for a specified <see cref="ICacheRefresher"/>.
|
||||
/// </summary>
|
||||
/// <param name="refresher">The ICacheRefresher.</param>
|
||||
void PerformRefreshAll(ICacheRefresher refresher);
|
||||
void QueueRefreshAll(ICacheRefresher refresher);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,47 +114,49 @@ namespace Umbraco.Tests.Integration.Testing
|
||||
public NoopServerMessenger()
|
||||
{ }
|
||||
|
||||
public void PerformRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
|
||||
public void QueueRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void PerformRemove(ICacheRefresher refresher, params int[] numericIds)
|
||||
public void QueueRemove(ICacheRefresher refresher, params int[] numericIds)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void PerformRefresh(ICacheRefresher refresher, params int[] numericIds)
|
||||
public void QueueRefresh(ICacheRefresher refresher, params int[] numericIds)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void PerformRefresh(ICacheRefresher refresher, params Guid[] guidIds)
|
||||
public void QueueRefresh(ICacheRefresher refresher, params Guid[] guidIds)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void PerformRefreshAll(ICacheRefresher refresher)
|
||||
public void QueueRefreshAll(ICacheRefresher refresher)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Sync() { }
|
||||
|
||||
public void SendMessages() { }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -328,6 +328,8 @@ namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Scoping
|
||||
: base(false)
|
||||
{ }
|
||||
|
||||
public override void SendMessages() { }
|
||||
|
||||
public override void Sync() { }
|
||||
|
||||
protected override void DeliverRemote(ICacheRefresher refresher, MessageType messageType, IEnumerable<object> ids = null, string json = null)
|
||||
|
||||
@@ -2166,6 +2166,8 @@ namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
public LocalServerMessenger() : base(false)
|
||||
{ }
|
||||
|
||||
public override void SendMessages() { }
|
||||
|
||||
public override void Sync() { }
|
||||
|
||||
protected override void DeliverRemote(ICacheRefresher refresher, MessageType messageType, IEnumerable<object> ids = null, string json = null)
|
||||
|
||||
@@ -134,30 +134,32 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Cache.DistributedCache
|
||||
public List<string> PayloadsRefreshed { get; } = new List<string>();
|
||||
public int CountOfFullRefreshes { get; private set; } = 0;
|
||||
|
||||
public void PerformRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
|
||||
public void QueueRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload)
|
||||
{
|
||||
// doing nothing
|
||||
}
|
||||
|
||||
public void PerformRefresh(ICacheRefresher refresher, string jsonPayload) => PayloadsRefreshed.Add(jsonPayload);
|
||||
|
||||
public void PerformRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances) => IntIdsRefreshed.AddRange(instances.Select(getNumericId));
|
||||
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances) => IntIdsRefreshed.AddRange(instances.Select(getNumericId));
|
||||
|
||||
public void PerformRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances) => GuidIdsRefreshed.AddRange(instances.Select(getGuidId));
|
||||
public void QueueRefresh<T>(ICacheRefresher refresher, Func<T, Guid> getGuidId, params T[] instances) => GuidIdsRefreshed.AddRange(instances.Select(getGuidId));
|
||||
|
||||
public void PerformRemove(ICacheRefresher refresher, string jsonPayload) => PayloadsRemoved.Add(jsonPayload);
|
||||
|
||||
public void PerformRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances) => IntIdsRemoved.AddRange(instances.Select(getNumericId));
|
||||
public void QueueRemove<T>(ICacheRefresher refresher, Func<T, int> getNumericId, params T[] instances) => IntIdsRemoved.AddRange(instances.Select(getNumericId));
|
||||
|
||||
public void PerformRemove(ICacheRefresher refresher, params int[] numericIds) => IntIdsRemoved.AddRange(numericIds);
|
||||
public void QueueRemove(ICacheRefresher refresher, params int[] numericIds) => IntIdsRemoved.AddRange(numericIds);
|
||||
|
||||
public void PerformRefresh(ICacheRefresher refresher, params int[] numericIds) => IntIdsRefreshed.AddRange(numericIds);
|
||||
public void QueueRefresh(ICacheRefresher refresher, params int[] numericIds) => IntIdsRefreshed.AddRange(numericIds);
|
||||
|
||||
public void PerformRefresh(ICacheRefresher refresher, params Guid[] guidIds) => GuidIdsRefreshed.AddRange(guidIds);
|
||||
public void QueueRefresh(ICacheRefresher refresher, params Guid[] guidIds) => GuidIdsRefreshed.AddRange(guidIds);
|
||||
|
||||
public void PerformRefreshAll(ICacheRefresher refresher) => CountOfFullRefreshes++;
|
||||
public void QueueRefreshAll(ICacheRefresher refresher) => CountOfFullRefreshes++;
|
||||
|
||||
public void Sync() { }
|
||||
|
||||
public void SendMessages() { }
|
||||
}
|
||||
|
||||
internal class TestServerRegistrar : IServerRegistrar
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -300,6 +300,8 @@ namespace Umbraco.Tests.Scoping
|
||||
: base(false)
|
||||
{ }
|
||||
|
||||
public override void SendMessages() { }
|
||||
|
||||
public override void Sync() { }
|
||||
|
||||
protected override void DeliverRemote(ICacheRefresher refresher, MessageType messageType, IEnumerable<object> ids = null, string json = null)
|
||||
|
||||
Reference in New Issue
Block a user