public JobWorkerManager(IHostConifuration cfg, WebSocketMessageBroadcaster broadcaster, IEnumerable <IJobDescriber> describers, IQueue q) { _q = q; _cfg = cfg; _broadcaster = broadcaster; _describers = describers; _ss = new SemaphoreSlim(_cfg.Capacity, _cfg.MaxCapacity); Workers = new ConcurrentDictionary <Guid, JobWorker>(); }
public ServiceStatics(IEnumerable <IJobDescriber> describers, ConcurrentDictionary <Guid, JobWorker> Workers, IHostConifuration cfg, int available, int qCount) { this.Capacity = cfg.Capacity; this.MaxCapacity = cfg.MaxCapacity; this.Available = available; this.QCount = qCount; this.Jobs = new List <JobStattics>(); foreach (var d in describers) { var js = new JobStattics() { Describer = d, Workers = Workers.Where(x => x.Value.Describer.Name == d.Name).Select(x => x.Key).ToList() }; this.Jobs.Add(js); } }