public void Consume(IConsumeContext <WorkerAvailable <TMessage> > context) { IWorkerInfo <TMessage> worker = _workerCache.GetWorker <TMessage>(context.Message.ControlUri, x => { if (_log.IsInfoEnabled) { _log.InfoFormat("Discovered New Worker: {0}", context.Message.ControlUri); } WorkerInfo workerInfo = new WorkerInfo(context.Message.ControlUri, context.Message.DataUri); return(new WorkerInfo <TMessage>(workerInfo)); }); worker.Update(context.Message.InProgress, context.Message.InProgressLimit, context.Message.Pending, context.Message.PendingLimit, context.Message.Updated); if (_log.IsDebugEnabled) { _log.DebugFormat("Worker {0}: {1} in progress, {2} pending", worker.DataUri, worker.InProgress, worker.Pending); } }