asp.net core 高级封装 SharpBoot – SharpBoot.Starter.RabbitMQ
(本文基于SharpBoot)
- 安装方法:nuget搜索 SharpBoot.Starter.RabbitMQ
参数配置
appsetting.json文件
{
"RabbitMQ": {
"Host": "xxxxx",
"Port": 5672,
"User": "guest",
"Password": "guest",
"VirtualHost": "sharpboot.test"
},
}
启动
[EnableRabbitMQ]
public class Program
{
static void Main(string[] args)
{
SharpBootApplication.Run<Program>(args);
}
}
(原理此处可参考 https://blog.csdn.net/meizihuai/article/details/113483179 )
生产者
[Component]
public class TestMQProducter : ProducterProxy
{
private readonly string exchange = "sharpboot.test.exchange";
public TestMQProducter(RabbitMQProvider provider) : base(provider)
{
}
public override ProducterOptions Options => new ProducterOptions()
{
Exchange = exchange,
Durable = true
};
}
消费者
[Component]
public class TestConsumer : IConsumer
{
private readonly ILog log = LogFactory.GetLogger<TestConsumer>();
/// <summary>
/// 也可写全队列参数
/// </summary>
/// <param name="msg"></param>
[RabbitSubscribe(
Exchange = "sharpboot.test.exchange",
Routing = "",
Queue = "sharpboot.test.queue",
Durable = true,
AutoDelete = false,
Exclusive = false)]
public bool Receive(string msg)
{
log.Info($"[接收 id=1] msg=" + msg);
return true;
}
/// <summary>
/// 也可写全队列参数
/// </summary>
/// <param name="msg"></param>
//[RabbitSubscribe(
// Exchange = "sharpboot.test.exchange",
// Routing = "",
// Queue = "sharpboot.test.queue",
// Durable = true,
// AutoDelete = false,
// Exclusive = false)]
public void Receive2(string msg)
{
log.Info($"[接收 id=2] msg=" + msg);
}
}
```