示例#1
0
		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);
		}
示例#2
0
		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);
		}