public void Run() { Logger.Info("QP8.ArticleScheduler starting..."); var unityConfig = new UnityContainerCustomizer(); _cancellationTokenSource = new CancellationTokenSource(); _task = new Task(() => { do { try { QPConfiguration.ConfigServiceUrl = _props.ConfigServiceUrl; QPConfiguration.ConfigServiceToken = _props.ConfigServiceToken; QPConfiguration.XmlConfigPath = _props.XmlConfigPath; var customers = QPConfiguration.GetCustomers(AppName) .Where(c => c.DbType == DatabaseType.SqlServer) .Where(c => !c.ExcludeFromSchedulers) .ToList(); new QpScheduler(unityConfig.UnityContainer, customers, _props.PrtgLoggerTasksQueueCheckShiftTime).Run(); } catch (Exception ex) { Logger.Error().Exception(ex).Message("There was an error while starting the service job").Write(); } } while (!_cancellationTokenSource.Token.WaitHandle.WaitOne(_props.RecurrentTimeout)); }, _cancellationTokenSource.Token, TaskCreationOptions.LongRunning); _task.Start(); Logger.Info("QP8.ArticleScheduler started"); }
public void Run() { var unityConfig = new UnityContainerCustomizer(); var prtgLogger = new PrtgErrorsHandler(unityConfig.UnityContainer.Resolve <IPrtgNLogFactory>()); _cancellationTokenSource = new CancellationTokenSource(); _task = new Task(() => { do { try { var customers = QPConfiguration.GetCustomers(AppName).Where(c => !c.ExcludeFromSchedulers).ToList(); new QpScheduler(unityConfig.UnityContainer, prtgLogger, customers, _tasksQueueCheckShiftTime).Run(); } catch (Exception ex) { Logger.Log.Error("There was an error while starting the service job", ex); } } while (!_cancellationTokenSource.Token.WaitHandle.WaitOne(_recurrentTimeout)); }, _cancellationTokenSource.Token, TaskCreationOptions.LongRunning); _task.Start(); }