示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MessageProcessingRpcReceive{TReceivedMessage}" /> class.
        /// </summary>
        /// <param name="configurationReceive">The configuration receive.</param>
        /// <param name="receiveMessagesFactory">The receive messages factory.</param>
        /// <param name="messageContextFactory">The message context factory.</param>
        /// <param name="messageHandler">The message handler.</param>
        /// <param name="rpcContextFactory">The RPC context factory.</param>
        /// <param name="commitMessage">The commit message.</param>
        public MessageProcessingRpcReceive(
            QueueConsumerConfiguration configurationReceive,
            IReceiveMessagesFactory receiveMessagesFactory,
            IMessageContextFactory messageContextFactory,
            IMessageHandlerRegistration messageHandler,
            IRpcContextFactory rpcContextFactory,
            ICommitMessage commitMessage)
        {
            Guard.NotNull(() => configurationReceive, configurationReceive);
            Guard.NotNull(() => receiveMessagesFactory, receiveMessagesFactory);
            Guard.NotNull(() => messageContextFactory, messageContextFactory);
            Guard.NotNull(() => messageHandler, messageHandler);
            Guard.NotNull(() => rpcContextFactory, rpcContextFactory);
            Guard.NotNull(() => commitMessage, commitMessage);

            _configurationReceive   = configurationReceive;
            _receiveMessagesFactory = receiveMessagesFactory;
            _messageContextFactory  = messageContextFactory;
            _messageHandler         = messageHandler;
            _rpcContextFactory      = rpcContextFactory;
            _commitMessage          = commitMessage;

            void Action(IReceivedMessage <TReceivedMessage> message, IWorkerNotification worker)
            {
            }

            messageHandler.Set((Action <IReceivedMessage <TReceivedMessage>, IWorkerNotification>)Action);
        }
        public MessageProcessingRpcReceive <FakeMessage> Create()
        {
            var fixture         = new Fixture().Customize(new AutoNSubstituteCustomization());
            var receiveMessages = fixture.Create <IReceiveMessagesFactory>();

            fixture.Inject(receiveMessages);
            var fakeMessage = fixture.Create <IMessage>();

            fakeMessage.Body.Returns(new FakeMessage());
            fixture.Inject(fakeMessage);
            ICommitMessage commitMessage = fixture.Create <CommitMessage>();

            fixture.Inject(commitMessage);

            IReceivedMessageInternal message = fixture.Create <ReceivedMessageInternal>();

            var messageHandlerRegistration = fixture.Create <IMessageHandlerRegistration>();

            messageHandlerRegistration.GenerateMessage(message)
            .Returns(new ReceivedMessage <FakeMessage>(message));
            fixture.Inject(messageHandlerRegistration);

            receiveMessages.Create().ReceiveMessage(null).ReturnsForAnyArgs(message);

            return(fixture.Create <MessageProcessingRpcReceive <FakeMessage> >());
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="QueueCreationDecorator" /> class.
 /// </summary>
 /// <param name="metrics">The metrics factory.</param>
 /// <param name="handler">The handler.</param>
 /// <param name="connectionInformation">The connection information.</param>
 public CommitMessageDecorator(IMetrics metrics,
     ICommitMessage handler,
     IConnectionInformation connectionInformation)
 {
     var name = handler.GetType().Name;
     _commitCounter = metrics.Counter($"{connectionInformation.QueueName}.{name}.CommitCounter", Units.Items);
     _handler = handler;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueCreationDecorator" /> class.
        /// </summary>
        /// <param name="metrics">The metrics factory.</param>
        /// <param name="handler">The handler.</param>
        /// <param name="connectionInformation">The connection information.</param>
        public CommitMessageDecorator(IMetrics metrics,
                                      ICommitMessage handler,
                                      IConnectionInformation connectionInformation)
        {
            var name = "CommitMessage";

            _commitCounter = metrics.Counter($"{connectionInformation.QueueName}.{name}.CommitCounter", Units.Items);
            _handler       = handler;
        }
示例#5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ProcessMessage"/> class.
        /// </summary>
        /// <param name="handler">The handler.</param>
        /// <param name="heartBeatWorkerFactory">The heart beat worker factory.</param>
        /// <param name="messageExceptionHandler">The message exception handler.</param>
        /// <param name="commitMessage">The commit message.</param>
        public ProcessMessage(IHandleMessage handler,
            IHeartBeatWorkerFactory heartBeatWorkerFactory,
            MessageExceptionHandler messageExceptionHandler,
            ICommitMessage commitMessage)
        {
            Guard.NotNull(() => handler, handler);
            Guard.NotNull(() => heartBeatWorkerFactory, heartBeatWorkerFactory);
            Guard.NotNull(() => messageExceptionHandler, messageExceptionHandler);
            Guard.NotNull(() => commitMessage, commitMessage);

            _messageExceptionHandler = messageExceptionHandler;
            _methodToRun = handler;
            _heartBeatWorkerFactory = heartBeatWorkerFactory;
            _commitMessage = commitMessage;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ProcessMessageAsync"/> class.
        /// </summary>
        /// <param name="handler">The handler.</param>
        /// <param name="heartBeatWorkerFactory">The heart beat worker factory.</param>
        /// <param name="messageExceptionHandler">The message exception handler.</param>
        /// <param name="commitMessage">The commit message.</param>
        public ProcessMessageAsync(IHandleMessage handler,
                                   IHeartBeatWorkerFactory heartBeatWorkerFactory,
                                   MessageExceptionHandler messageExceptionHandler,
                                   ICommitMessage commitMessage)
        {
            Guard.NotNull(() => handler, handler);
            Guard.NotNull(() => heartBeatWorkerFactory, heartBeatWorkerFactory);
            Guard.NotNull(() => messageExceptionHandler, messageExceptionHandler);
            Guard.NotNull(() => commitMessage, commitMessage);

            _messageExceptionHandler = messageExceptionHandler;
            _methodToRun             = handler;
            _heartBeatWorkerFactory  = heartBeatWorkerFactory;
            _commitMessage           = commitMessage;
        }
示例#7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CommitMessageDecorator"/> class.
 /// </summary>
 /// <param name="handler">The handler.</param>
 /// <param name="tracer">The tracer.</param>
 /// <param name="headers">The headers.</param>
 public CommitMessageDecorator(ICommitMessage handler, ITracer tracer, IStandardHeaders headers)
 {
     _handler = handler;
     _tracer  = tracer;
     _headers = headers;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CommitMessageDecorator"/> class.
 /// </summary>
 /// <param name="handler">The handler.</param>
 /// <param name="tracer">The tracer.</param>
 /// <param name="headers">The headers.</param>
 public CommitMessageDecorator(ICommitMessage handler, ActivitySource tracer, IStandardHeaders headers)
 {
     _handler = handler;
     _tracer  = tracer;
     _headers = headers;
 }