public void Publish(object message) { Guard.ArgumentNotNull(nameof(message), message); Guard.NotDisposed(_disposed, "RabbitMQMessenger"); var messageTypeName = _builder.GetMessageTypeName(message.GetType()); var messageText = JsonConvert.SerializeObject(message); _model.BasicPublish(_exchangeName, messageTypeName, body: Encoding.UTF8.GetBytes(messageText)); }
public void PublishDelay(object message, TimeSpan delay) { Guard.ArgumentNotNull(nameof(message), message); Guard.NotDisposed(_disposed, "RabbitMQMessenger"); var messageTypeName = _builder.GetMessageTypeName(message.GetType()); var messageText = JsonConvert.SerializeObject(message); var properties = _delay.CreateBasicProperties(); properties.Expiration = delay.TotalMilliseconds.ToString(); _delay.BasicPublish(_delayExchange, messageTypeName, body: Encoding.UTF8.GetBytes(messageText), basicProperties: properties); }