public DatabaseServerRegistrarAndMessengerComponent(IRuntimeState runtime, IServerRegistrar serverRegistrar, IServerMessenger serverMessenger, IServerRegistrationService registrationService, ILogger logger, IndexRebuilder indexRebuilder)
        {
            _runtime             = runtime;
            _logger              = logger;
            _registrationService = registrationService;
            _indexRebuilder      = indexRebuilder;

            // create task runner for DatabaseServerRegistrar
            _registrar = serverRegistrar as DatabaseServerRegistrar;
            if (_registrar != null)
            {
                _touchTaskRunner = new BackgroundTaskRunner <IBackgroundTask>("ServerRegistration",
                                                                              new BackgroundTaskRunnerOptions {
                    AutoStart = true
                }, logger);
            }

            // create task runner for BatchedDatabaseServerMessenger
            _messenger = serverMessenger as BatchedDatabaseServerMessenger;
            if (_messenger != null)
            {
                _processTaskRunner = new BackgroundTaskRunner <IBackgroundTask>("ServerInstProcess",
                                                                                new BackgroundTaskRunnerOptions {
                    AutoStart = true
                }, logger);
            }
        }
        public DatabaseServerRegistrarAndMessengerComponent(IRuntimeState runtime, IServerRegistrar serverRegistrar, IServerMessenger serverMessenger, IServerRegistrationService registrationService, ILogger logger, IndexRebuilder indexRebuilder)
        {
            _registrar = serverRegistrar as DatabaseServerRegistrar;
            if (_registrar == null)
            {
                throw new Exception("panic: registar.");
            }

            _messenger = serverMessenger as BatchedDatabaseServerMessenger;
            if (_messenger == null)
            {
                throw new Exception("panic: messenger");
            }

            _runtime             = runtime;
            _logger              = logger;
            _registrationService = registrationService;
            _indexRebuilder      = indexRebuilder;

            _touchTaskRunner = new BackgroundTaskRunner <IBackgroundTask>("ServerRegistration",
                                                                          new BackgroundTaskRunnerOptions {
                AutoStart = true
            }, logger);
            _processTaskRunner = new BackgroundTaskRunner <IBackgroundTask>("ServerInstProcess",
                                                                            new BackgroundTaskRunnerOptions {
                AutoStart = true
            }, logger);
        }
Beispiel #3
0
 public RebuildOnStartupTask(IndexRebuilder indexRebuilder, ILogger logger, bool onlyEmptyIndexes, int waitMilliseconds = 0)
 {
     _indexRebuilder   = indexRebuilder ?? throw new ArgumentNullException(nameof(indexRebuilder));
     _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
     _onlyEmptyIndexes = onlyEmptyIndexes;
     _waitMilliseconds = waitMilliseconds;
 }
Beispiel #4
0
 public ExamineManagementController(IExamineManager examineManager, ILogger logger,
                                    AppCaches appCaches,
                                    IndexRebuilder indexRebuilder)
 {
     _examineManager = examineManager;
     _logger         = logger;
     _runtimeCache   = appCaches.RuntimeCache;
     _indexRebuilder = indexRebuilder;
 }
Beispiel #5
0
 public ExamineManagementController(IExamineManager examineManager, ILogger logger,
                                    IRuntimeCacheProvider runtimeCacheProvider,
                                    IndexRebuilder indexRebuilder)
 {
     _examineManager       = examineManager;
     _logger               = logger;
     _runtimeCacheProvider = runtimeCacheProvider;
     _indexRebuilder       = indexRebuilder;
 }
            public static void ResumeIndexers(IndexRebuilder indexRebuilder, ILogger logger)
            {
                _suspended = false;

                logger.Info(typeof(ExamineEvents), "Resume indexers (rebuild:{Tried}).", _tried);

                if (_tried == false)
                {
                    return;
                }
                _tried = false;

                //TODO: when resuming do we always want a full rebuild of all indexes?
                ExamineComponent.RebuildIndexes(indexRebuilder, logger, false);
            }
Beispiel #7
0
 public IndexController(ICacheService cacheService,
                        ILogger logger,
                        IConfig fullTextConfig,
                        IExamineManager examineManager,
                        IndexRebuilder indexRebuilder,
                        IPublishedContentValueSetBuilder valueSetBuilder,
                        IContentService contentService)
 {
     _cacheService    = cacheService;
     _fullTextConfig  = fullTextConfig;
     _logger          = logger;
     _valueSetBuilder = valueSetBuilder;
     _examineManager  = examineManager;
     _contentService  = contentService;
     _indexRebuilder  = indexRebuilder;
 }
Beispiel #8
0
        public ExamineComponent(IMainDom mainDom,
                                IExamineManager examineManager, IProfilingLogger profilingLogger,
                                IScopeProvider scopeProvider, IUmbracoIndexesCreator indexCreator,
                                IndexRebuilder indexRebuilder, ServiceContext services,
                                IContentValueSetBuilder contentValueSetBuilder,
                                IPublishedContentValueSetBuilder publishedContentValueSetBuilder,
                                IValueSetBuilder <IMedia> mediaValueSetBuilder,
                                IValueSetBuilder <IMember> memberValueSetBuilder)
        {
            _services                        = services;
            _scopeProvider                   = scopeProvider;
            _examineManager                  = examineManager;
            _contentValueSetBuilder          = contentValueSetBuilder;
            _publishedContentValueSetBuilder = publishedContentValueSetBuilder;
            _mediaValueSetBuilder            = mediaValueSetBuilder;
            _memberValueSetBuilder           = memberValueSetBuilder;

            _mainDom        = mainDom;
            _logger         = profilingLogger;
            _indexCreator   = indexCreator;
            _indexRebuilder = indexRebuilder;
        }
Beispiel #9
0
        /// <summary>
        /// Called to rebuild empty indexes on startup
        /// </summary>
        /// <param name="indexRebuilder"></param>
        /// <param name="logger"></param>
        /// <param name="onlyEmptyIndexes"></param>
        /// <param name="waitMilliseconds"></param>
        public static void RebuildIndexes(IndexRebuilder indexRebuilder, ILogger logger, bool onlyEmptyIndexes, int waitMilliseconds = 0)
        {
            // TODO: need a way to disable rebuilding on startup

            lock (RebuildLocker)
            {
                if (_rebuildOnStartupRunner != null && _rebuildOnStartupRunner.IsRunning)
                {
                    logger.Warn <ExamineComponent>("Call was made to RebuildIndexes but the task runner for rebuilding is already running");
                    return;
                }

                logger.Info <ExamineComponent>("Starting initialize async background thread.");
                //do the rebuild on a managed background thread
                var task = new RebuildOnStartupTask(indexRebuilder, logger, onlyEmptyIndexes, waitMilliseconds);

                _rebuildOnStartupRunner = new BackgroundTaskRunner <IBackgroundTask>(
                    "RebuildIndexesOnStartup",
                    logger);

                _rebuildOnStartupRunner.TryAdd(task);
            }
        }
Beispiel #10
0
 public static void RebuildIndexes(IndexRebuilder indexRebuilder, ILogger logger, bool onlyEmptyIndexes, int waitMilliseconds = 0) => Current.Factory.GetInstance <BackgroundIndexRebuilder>().RebuildIndexes(onlyEmptyIndexes, waitMilliseconds);
 public BackgroundIndexRebuilder(IMainDom mainDom, IProfilingLogger logger, IndexRebuilder indexRebuilder)
 {
     _mainDom        = mainDom;
     _logger         = logger;
     _indexRebuilder = indexRebuilder;
 }