void SendReadyMessage(bool startup) { if (ControlQueue == null) return; IMessage[] messages; if (startup) { messages = new IMessage[EndpointTransport.NumberOfWorkerThreads]; for (var i = 0; i < EndpointTransport.NumberOfWorkerThreads; i++) { var rm = new ReadyMessage { ClearPreviousFromThisAddress = (i == 0) }; messages[i] = rm; } } else { messages = new IMessage[] {new ReadyMessage()}; } EndpointBus.Send(ControlQueue, messages); }
private void Handle(ReadyMessage message, Address returnAddress) { Configurer.Logger.Info("Server available: " + returnAddress); if (message.ClearPreviousFromThisAddress) //indicates worker started up WorkerAvailabilityManager.ClearAvailabilityForWorker(returnAddress); WorkerAvailabilityManager.WorkerAvailable(returnAddress); }
/// <summary> /// Sends a ready message to the distributor /// </summary> /// <param name="startup"></param> public void SendReadyMessage(bool startup) { if (DistributorControlAddress == null) return; if (!canSendReadyMessages) return; IMessage[] messages; if (startup) { messages = new IMessage[Transport.NumberOfWorkerThreads]; for (var i = 0; i < Transport.NumberOfWorkerThreads; i++) { var rm = new ReadyMessage { ClearPreviousFromThisAddress = (i == 0) }; messages[i] = rm; } } else { messages = new IMessage[1]; messages[0] = new ReadyMessage(); } Bus.Send(DistributorControlAddress, messages); }