decouples data lookup from indexers and rebuilding logic

This commit is contained in:
Shannon
2018-11-28 01:23:02 +11:00
parent ff3af8b7a7
commit 3fd0aef18e
30 changed files with 670 additions and 697 deletions

View File

@@ -11,6 +11,7 @@ using Umbraco.Core.Scoping;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Changes;
using Umbraco.Core.Sync;
using Umbraco.Examine;
using Umbraco.Web.Cache;
using Umbraco.Web.Composing;
using Umbraco.Web.Routing;
@@ -48,7 +49,7 @@ namespace Umbraco.Web.Components
private BackgroundTaskRunner<IBackgroundTask> _processTaskRunner;
private bool _started;
private IBackgroundTask[] _tasks;
private IExamineManager _examineManager;
private IndexRebuilder _indexRebuilder;
public override void Compose(Composition composition)
{
@@ -87,13 +88,13 @@ namespace Umbraco.Web.Components
//rebuild indexes if the server is not synced
// NOTE: This will rebuild ALL indexes including the members, if developers want to target specific
// indexes then they can adjust this logic themselves.
() => ExamineComponent.RebuildIndexes(_examineManager, _logger, false, 5000)
() => ExamineComponent.RebuildIndexes(_indexRebuilder, _logger, false, 5000)
}
});
});
}
public void Initialize(IRuntimeState runtime, IServerRegistrar serverRegistrar, IServerMessenger serverMessenger, IServerRegistrationService registrationService, ILogger logger, IExamineManager examineManager)
public void Initialize(IRuntimeState runtime, IServerRegistrar serverRegistrar, IServerMessenger serverMessenger, IServerRegistrationService registrationService, ILogger logger, IndexRebuilder indexRebuilder)
{
_registrar = serverRegistrar as DatabaseServerRegistrar;
if (_registrar == null) throw new Exception("panic: registar.");
@@ -106,7 +107,7 @@ namespace Umbraco.Web.Components
_runtime = runtime;
_logger = logger;
_registrationService = registrationService;
_examineManager = examineManager;
_indexRebuilder = indexRebuilder;
_touchTaskRunner = new BackgroundTaskRunner<IBackgroundTask>("ServerRegistration",
new BackgroundTaskRunnerOptions { AutoStart = true }, logger);