public void Publish(HdMessage @event) { using (var channel = _connection.CreateChannel()) { channel.QueueDeclare(_exchange, true, false, false, null); var body = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(@event)); RetryPolicy.ExecuteAndCapture <SocketException, BrokerUnreachableException>(5, TimeSpan.FromSeconds(3), () => { IBasicProperties basicProperties = channel.CreateBasicProperties(); basicProperties.Persistent = true; channel.BasicPublish(_exchange, @event.Name, true, basicProperties, body); }); } }
public static RabbitMqPayLoad GetRabbitMqMessage(EventMessage eventMessage, RabbitMQ.Client.IBasicProperties basicProperties) { RabbitMqPayLoad msg = new RabbitMqPayLoad(GetBytes(JsonConvert.SerializeObject(eventMessage)), basicProperties); if (eventMessage.EventHeaders != null) { foreach (KeyValuePair <string, string> item in eventMessage.EventHeaders) { msg.BasicProperties.Headers.Add(item.Key, item.Value); } } msg.BasicProperties.CorrelationId = Guid.NewGuid().ToString(); return(msg); }
public void HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, RabbitMQ.Client.IBasicProperties properties, byte[] body) { _action(deliveryTag, properties, body); }