public void Record() { _stateMaintainer.Refresh(); if (!_state.Configurations.Any()) { return; } var samples = _store.ServerCountSamples(); var noRecentSample = samples.Samples.Count(isRecent) == 0; if (noRecentSample) { var serverCount = _state.Configurations.First().MonitoringApi.Servers().Count; samples.Samples = samples .Samples .OrderByDescending(x => x.Timestamp) .Take(_sampleLimit - 1) .OrderBy(x => x.Timestamp) .Append(new ServerCountSample { Timestamp = _now.UtcDateTime(), Count = serverCount }) .ToArray(); _store.ServerCountSamples(samples); } }
public IEnumerable <ConfigurationInfo> QueryAllWorkerServers() { _stateMaintainer.Refresh(); return(_state.Configurations .Select(x => new ConfigurationInfo(x)) .ToArray()); }
private ConfigurationInfo[] queryPublishers() { _stateMaintainer.Refresh(); return(_state.Configurations .Where(x => x.Configuration.Active.GetValueOrDefault()) .Select(x => new ConfigurationInfo(x)) .ToArray()); }
public void Start() { _stateMaintainer.Refresh(); _state.Configurations .Where(x => x.IsPublisher()) .ForEach(x => { // x.EnsureJobStorageInitialized(); }); }
public void Start(IBackgroundProcess[] additionalProcesses) { var options = _state.ReadOptions(); var backgroundProcesses = new List <IBackgroundProcess>(); if (additionalProcesses != null) { backgroundProcesses.AddRange(additionalProcesses); } if (_state.ReadOptions().WorkerDeterminerOptions.UseServerCountSampling) { backgroundProcesses.Add(_recorder); } var serverOptions = _state.ServerOptions ?? new BackgroundJobServerOptions(); _stateMaintainer.Refresh(); _state.Configurations .OrderBy(x => !(x.Configuration.Active ?? false)) .ForEach(x => { startWorkerServer(x, options, serverOptions, backgroundProcesses); }); }