Exemplo n.º 1
0
        public void Publish(T message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var channel      = _rabbitMqChannelProvider.OpenChannel();
            var exchangeName = _queueBuilder.GetExchangeName();
            var routingKey   = _queueBuilder.GetRoutingKey(message);
            var queueName    = _queueBuilder.GetQueueName();
            var body         = Serialize(message);
            var props        = channel.CreateBasicProperties();

            props.Persistent = true;
            props.MessageId  = Guid.NewGuid().ToString();

            channel.QueueDeclare(queueName,
                                 durable: true,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            channel.BasicPublish(exchangeName, routingKey, props, body);
            _logger.Information("Message published to {queueName}: {messageId}",
                                queueName,
                                props.MessageId);
        }
        public void QueueNameForFailedMessage_IsFailedMessagePlusClassName()
        {
            var builder = new RabbitMqDefaultQueueBuilder <FailedMessage <TestMessage> >();

            var queueName = builder.GetQueueName();

            Assert.AreEqual("FailedMessage<CherryPeakTrading.Infrastructure.Tests.Messaging.TestMessage>", queueName);
        }
        public void QueueNameForSimpleMessage_IsSameAsClassName()
        {
            var builder = new RabbitMqDefaultQueueBuilder <TestMessage>();

            var queueName = builder.GetQueueName();

            Assert.AreEqual("CherryPeakTrading.Infrastructure.Tests.Messaging.TestMessage", queueName);
        }