Inheritance: AbstractIndexingExecuter
Exemple #1
0
		public void SpinIndexingWorkers()
		{
			if (backgroundWorkersSpun)
				throw new InvalidOperationException("The background workers has already been spun and cannot be spun again");

			backgroundWorkersSpun = true;

			workContext.StartIndexing();
			indexingBackgroundTask = Task.Factory.StartNew(indexingExecuter.Execute, CancellationToken.None, TaskCreationOptions.LongRunning, backgroundTaskScheduler);

			ReducingExecuter = new ReducingExecuter(workContext);

			reducingBackgroundTask = Task.Factory.StartNew(ReducingExecuter.Execute, CancellationToken.None, TaskCreationOptions.LongRunning, backgroundTaskScheduler);
		}
        public void SpinBackgroundWorkers(bool manualStart = false)
        {
            if (manualStart == false && indexingWorkersStoppedManually)
                return;

            if (backgroundWorkersSpun)
                throw new InvalidOperationException("The background workers has already been spun and cannot be spun again");
            var disableIndexing = Configuration.Settings[Constants.IndexingDisabled];
            if (disableIndexing != null)
            {
                bool disableIndexingStatus;
                var res = bool.TryParse(disableIndexing, out disableIndexingStatus);
                if (res && disableIndexingStatus)
                    return; //indexing were set to disable 
            }

            backgroundWorkersSpun = true;
            indexingWorkersStoppedManually = false;

            workContext.StartWork();
            indexingBackgroundTask = Task.Factory.StartNew(indexingExecuter.Execute, CancellationToken.None, TaskCreationOptions.LongRunning, backgroundTaskScheduler);

            ReducingExecuter = new ReducingExecuter(workContext, IndexReplacer);

            SpinReduceWorker();
        }