Пример #1
0
        public void Return <T>(T errorCode)
        {
            var returnMessage = ControlMessage.Create(Address.Local);

            returnMessage.MessageIntent = MessageIntentEnum.Reply;

            returnMessage.Headers[Headers.ReturnMessageErrorCodeHeader] = errorCode.GetHashCode().ToString();
            returnMessage.CorrelationId = !string.IsNullOrEmpty(MessageBeingProcessed.CorrelationId) ? MessageBeingProcessed.CorrelationId : MessageBeingProcessed.Id;

            var options = SendOptions.ReplyTo(MessageBeingProcessed.ReplyToAddress);

            PipelineFactory.InvokeSendPipeline(options, returnMessage);
        }
Пример #2
0
        OutgoingContext InvokeSendPipeline(DeliveryOptions sendOptions, LogicalMessage message)
        {
            if (sendOptions.ReplyToAddress == null && !SendOnlyMode)
            {
                sendOptions.ReplyToAddress = Configure.PublicReturnAddress;
            }

            if (PropagateReturnAddressOnSend && CurrentMessageContext != null)
            {
                sendOptions.ReplyToAddress = CurrentMessageContext.ReplyToAddress;
            }

            return(PipelineFactory.InvokeSendPipeline(sendOptions, message));
        }
Пример #3
0
        SendLogicalMessagesContext InvokeSendPipeline(SendOptions sendOptions, List <LogicalMessage> messages)
        {
            if (sendOptions.ReplyToAddress == null && !Configure.SendOnlyMode)
            {
                sendOptions.ReplyToAddress = Address.Local;
            }

            if (PropagateReturnAddressOnSend && CurrentMessageContext != null)
            {
                sendOptions.ReplyToAddress = CurrentMessageContext.ReplyToAddress;
            }

            return(PipelineFactory.InvokeSendPipeline(sendOptions, messages));
        }
Пример #4
0
        public void Return <T>(T errorCode)
        {
            TransportMessage returnMessage;

            if (Configure.Instance.WorkerRunsOnThisEndpoint())
            {
                returnMessage = ControlMessage.Create(MasterNodeAddress);
            }
            else
            {
                returnMessage = ControlMessage.Create(Address.Local);
            }

            returnMessage.MessageIntent = MessageIntentEnum.Reply;

            returnMessage.Headers[Headers.ReturnMessageErrorCodeHeader] = errorCode.GetHashCode().ToString();
            returnMessage.CorrelationId = !string.IsNullOrEmpty(MessageBeingProcessed.CorrelationId) ? MessageBeingProcessed.CorrelationId : MessageBeingProcessed.Id;

            var options = SendOptions.ReplyTo(MessageBeingProcessed.ReplyToAddress);

            PipelineFactory.InvokeSendPipeline(options, returnMessage);
        }