private void MessagePublish(Configuration.RabbitMQ configuration, PurchaseOrder order) { using var connection = Service.BootStrapBroker(configuration); var model = connection.CreateModel(); model.BasicPublish(configuration.ExchangeName, "", true, null, System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(order)); }
public ConsumerOf(IMessageHandlerOf <T> messageHandler, Configuration.RabbitMQ configuration, CancellationToken cancellationToken, ILogger logger) { _messageHandler = messageHandler; _configuration = configuration; _cancellationToken = cancellationToken; _logger = logger; }
private void MessagePublish(PurchaseOrder order, Configuration.RabbitMQ rabbitMqConfiguration) { using var connection = Service.BootStrapBroker(rabbitMqConfiguration); var model = connection.CreateModel(); var basicProperties = model.CreateBasicProperties(); basicProperties.ContentType = "application/json"; basicProperties.ContentEncoding = "UTF-8"; basicProperties.MessageId = _messageId.ToString(); basicProperties.Timestamp = new AmqpTimestamp(_referralDate); basicProperties.Type = "urn:message:fulfillment:purchaseorder"; model.BasicPublish(rabbitMqConfiguration.ExchangeName, "", true, basicProperties, System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(order)); }
internal static IConnection BootStrapBroker(Configuration.RabbitMQ configuration) => new ConnectionFactory { AutomaticRecoveryEnabled = true, DispatchConsumersAsync = true, TopologyRecoveryEnabled = true, ClientProvidedName = typeof(Service).AssemblyQualifiedName, Port = configuration.Port, VirtualHost = configuration.VirtualHost, UserName = configuration.UserName, Password = configuration.Password, UseBackgroundThreadsForIO = true } .CreateConnection(configuration.Hosts);
private async Task <ConsumerOf <PurchaseOrder> > BootstrapConsumer(ISession session, IConnection connection, Configuration.RabbitMQ rabbitMqConfiguration) { var consumer = new ConsumerOf <PurchaseOrder>( new PurchaseOrderHandler(session, await session.PrepareAsync(PurchaseOrderHandler.InsertCql) .ConfigureAwait(false)), rabbitMqConfiguration, _cancellationTokenSource.Token, _logger); consumer.Start(connection); return(consumer); }
private UInt32 GetMessageCount(Configuration.RabbitMQ configuration, String queueName) { using var connection = Service.BootStrapBroker(configuration); using var channel = connection.CreateModel(); return(channel.MessageCount(queueName)); }