private void AddWorkerToQueue(OpenedQueue queue, ReadyToWork work) { var persistedWorker = new Message { Formatter = new XmlMessageFormatter(new[] { typeof(string) }), Body = work.Endpoint.ToString(), Label = ("Known worker: " + work.Endpoint).EnsureLabelLength() }; logger.InfoFormat("New worker: {0}", work.Endpoint); queue.Send(persistedWorker.SetSubQueueToSendTo(SubQueue.Workers)); SendToQueue(secondaryLoadBalancer, new NewWorkerPersisted { Endpoint = work.Endpoint }); Raise(SentNewWorkerPersisted); }
private void PersistEndpoint(OpenedQueue queue, Message message) { var queueUri = MsmqUtil.GetQueueUri(message.ResponseQueue); if (queueUri == null) return; bool needToPersist = knownEndpoints.Add(queueUri); if (needToPersist == false) return; logger.InfoFormat("Adding new endpoint: {0}", queueUri); var persistedEndPoint = new Message { Formatter = new XmlMessageFormatter(new[] { typeof(string) }), Body = queueUri.ToString(), Label = ("Known end point: " + queueUri).EnsureLabelLength() }; queue.Send(persistedEndPoint.SetSubQueueToSendTo(SubQueue.Endpoints)); SendToQueue(secondaryLoadBalancer, new NewEndpointPersisted { PersistedEndpoint = queueUri }); Raise(SentNewEndpointPersisted); }