/// <inheritdoc /> public MessageBusServiceHandshakeReplyMessage SendMessageBusHandshake(IEnumerable <Shared.Messages.SubscribeHandler> subscribeHandlers, IEnumerable <Shared.Messages.RequestHandler> requestHandlers, CancellationToken cancellationToken) { var messageBusServiceHandshakeMessage = new MessageBusServiceHandshakeMessage { ServerName = _processInformation.MachineName, ServiceName = _messageBusConfig.ServiceName, SendDateTime = DateTimeOffset.Now, SubscribeHandlers = subscribeHandlers, RequestHandlers = requestHandlers, ReplyQueue = _queueNameUtility.ReplyQueue <MessageBusServiceHandshakeMessage>() }; using (var replyQueue = _queueFactory.CreateLocale(messageBusServiceHandshakeMessage.ReplyQueue, true, LocaleQueueMode.TemporaryMaster, false, AccessMode.Receive)) { _logger.Debug("Message Broker Client sending Message Bus Handshake {@Message}", messageBusServiceHandshakeMessage); SendToMessageBroker(messageBusServiceHandshakeMessage); var messageBusServiceHandshakeReplyMessage = replyQueue.Receive <MessageBusServiceHandshakeReplyMessage>(30000, cancellationToken); if (messageBusServiceHandshakeReplyMessage == null) { throw new MessageBusHandshakeTimeoutException(messageBusServiceHandshakeMessage); } messageBusServiceHandshakeReplyMessage.CompletedDateTime = DateTimeOffset.Now; _logger.Debug("Message Broker Client has received reply for Message bus Handshake {@ReplyMessage}", messageBusServiceHandshakeReplyMessage); return(messageBusServiceHandshakeReplyMessage); } }
/// <inheritdoc /> /// <summary> /// Timeout sending handshake to message broker /// </summary> /// <param name="messageBusServiceHandshakeMessage">Message Bus Handshake Message</param> public MessageBusHandshakeTimeoutException(MessageBusServiceHandshakeMessage messageBusServiceHandshakeMessage) : base("Sending Message Bus Handshake Timeout Exception") { Data.Add(nameof(messageBusServiceHandshakeMessage), messageBusServiceHandshakeMessage?.TrySerializeToJson()); }