使用
RabbitMQClient client = new RabbitMQClient(new RabbitMQOption
{
ClientName = "SPRule",
RabbitHost = _readConfiguration["RabbitHost"],
RabbitUserName = _readConfiguration["RabbitUserName"],
RabbitPassword = _readConfiguration["RabbitPassword"],
RabbitPort = int.Parse(_readConfiguration["RabbitPort"]),
VirtualHost = _readConfiguration["RabbitVirtualHost"]
});
client.BasicPublish("", queryName, _jSON.Serialize(reqMQ));
RabbitMQClient类封装
public class RabbitMQClient
{
private readonly IModel _channel;
public RabbitMQClient(RabbitMQOption options)
{
try
{
var factory = new ConnectionFactory()
{
HostName = options.RabbitHost,
Port = options.RabbitPort,
VirtualHost = options.VirtualHost,
UserName = options.RabbitUserName,
Password = options.RabbitPassword,
};
var connection = factory.CreateConnection("SPRule");
_channel = connection.CreateModel();
}
catch (Exception ex)
{
throw;
//_logger.Error(ex, "RabbitMQClient初始化失败");
}
}
public virtual void BasicPublish(string exchange, string queueName, object message)
{
try
{
string msgJson = JsonConvert.SerializeObject(message);
var body = Encoding.UTF8.GetBytes(msgJson);
_channel.BasicPublish(exchange: exchange,
routingKey: queueName,
basicProperties: null,
body: body);
}
catch (Exception ex)
{
throw;
//_logger.Error(ex, "RabbitMQClient.BasicPublish失败");
}
}