public void ProcessMessage(IHandlerContext <WorkerThreadAvailableCommand> context) { var distributeSendCount = _configuration.Inbox.DistributeSendCount > 0 ? _configuration.Inbox.DistributeSendCount : 5; _workerAvailabilityManager.RemoveByThread(context.Message); for (var i = 0; i < distributeSendCount; i++) { _workerAvailabilityManager.WorkerAvailable(context.Message); } }
void HandleControlMessage(TransportMessage controlMessage) { var replyToAddress = controlMessage.ReplyToAddress; string messageSessionId; if (!controlMessage.Headers.TryGetValue(Headers.WorkerSessionId, out messageSessionId)) { messageSessionId = String.Empty; } if (controlMessage.Headers.ContainsKey(Headers.WorkerStarting)) { var capacity = int.Parse(controlMessage.Headers[Headers.WorkerCapacityAvailable]); workerAvailabilityManager.RegisterNewWorker(new Worker(replyToAddress, messageSessionId), capacity); return; } workerAvailabilityManager.WorkerAvailable(new Worker(replyToAddress, messageSessionId)); }