Rabbit交换机确认模式。comfirm和事务模式测试。
This commit is contained in:
parent
12beee8577
commit
2a9928c209
|
@ -20,7 +20,7 @@ namespace RabbitMqTest
|
|||
using var channel = GetChannel();
|
||||
channel.QueueDeclare("hello",false,false,false,null);
|
||||
var consumer = new EventingBasicConsumer(channel);
|
||||
consumer.Received+=(model,args) => {
|
||||
consumer.Received += (model,args) => {
|
||||
var msg = Encoding.UTF8.GetString(args.Body.ToArray());
|
||||
Console.WriteLine($"Received message 1 {msg}");
|
||||
//Assert.IsTrue(msg==smsg1 || msg==smsg2);
|
||||
|
@ -33,7 +33,7 @@ namespace RabbitMqTest
|
|||
//消费者2
|
||||
using var channel2 = GetChannel();
|
||||
var consumer2 = new EventingBasicConsumer(channel2);
|
||||
consumer2.Received+=(model,args) => {
|
||||
consumer2.Received += (model,args) => {
|
||||
var msg = Encoding.UTF8.GetString(args.Body.ToArray());
|
||||
Console.WriteLine($"Received message 2 {msg}");
|
||||
//Assert.IsTrue(msg==smsg1||msg==smsg2);
|
||||
|
@ -71,7 +71,7 @@ namespace RabbitMqTest
|
|||
Console.WriteLine($"创建的临时队列名1:{queueName1}");
|
||||
channel1.QueueBind(queueName1,exchangeName,"",null);
|
||||
var consumer1 = new EventingBasicConsumer(channel1);
|
||||
consumer1.Received+=(m,a) => {
|
||||
consumer1.Received += (m,a) => {
|
||||
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
|
||||
Console.WriteLine($"Received message 1 {msgs}");
|
||||
Assert.AreEqual(msgs,smsg);
|
||||
|
@ -87,7 +87,7 @@ namespace RabbitMqTest
|
|||
Console.WriteLine($"创建的临时队列名2:{queueName2}");
|
||||
channel2.QueueBind(queueName2,exchangeName,"",null);
|
||||
var consumer2 = new EventingBasicConsumer(channel2);
|
||||
consumer2.Received+=(m,a) => {
|
||||
consumer2.Received += (m,a) => {
|
||||
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
|
||||
Console.WriteLine($"Received message 2 {msgs}");
|
||||
Assert.AreEqual(msgs,smsg);
|
||||
|
@ -114,7 +114,7 @@ namespace RabbitMqTest
|
|||
//消费者1
|
||||
using var channel1 = GetChannel();
|
||||
var consumer1 = new EventingBasicConsumer(channel1);
|
||||
consumer1.Received+=(m,a) => {
|
||||
consumer1.Received += (m,a) => {
|
||||
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
|
||||
Console.WriteLine($"Received message 1 {msgs}");
|
||||
Assert.AreEqual(msgs,smsg);
|
||||
|
@ -129,7 +129,7 @@ namespace RabbitMqTest
|
|||
//消费者2
|
||||
using var channel2 = GetChannel();
|
||||
var consumer2 = new EventingBasicConsumer(channel2);
|
||||
consumer2.Received+=(m,a) => {
|
||||
consumer2.Received += (m,a) => {
|
||||
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
|
||||
Console.WriteLine($"Received message 2 {msgs}");
|
||||
Assert.AreEqual(msgs,smsg);
|
||||
|
@ -138,5 +138,46 @@ namespace RabbitMqTest
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送到exchange后,exchange需要确认.Confirm模式
|
||||
/// </summary>
|
||||
[TestMethod("exchangeConfirm")]
|
||||
public void ExchangeConfirm() {
|
||||
var exchangeName = "tempExchange";
|
||||
|
||||
var channel = GetChannel();
|
||||
channel.ExchangeDeclare(exchangeName,ExchangeType.Fanout,false,true,null);
|
||||
channel.ConfirmSelect();
|
||||
channel.BasicPublish(exchangeName,"",null,RandomMsgBytes());
|
||||
if(channel.WaitForConfirms()) {
|
||||
Console.WriteLine("交换机确认成功!");
|
||||
}
|
||||
else {
|
||||
Console.WriteLine("交换机确认失败!");
|
||||
Assert.Fail();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送到exchange后,exchange需要确认.事务模式
|
||||
/// </summary>
|
||||
[TestMethod("exchangeTx")]
|
||||
public void ExchangeConfirm2() {
|
||||
var exchangeName = "tempExchange";
|
||||
|
||||
using var channel = GetChannel();
|
||||
channel.ExchangeDeclare(exchangeName,ExchangeType.Fanout,false,true,null);
|
||||
try {
|
||||
channel.TxSelect();
|
||||
channel.BasicPublish(exchangeName,"",null,RandomMsgBytes());
|
||||
channel.TxCommit();
|
||||
Console.WriteLine("交换机确认成功!");
|
||||
}
|
||||
catch(Exception ex) {
|
||||
Console.WriteLine("交换机确认失败!");
|
||||
Assert.Fail();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -34,6 +34,16 @@ namespace RabbitMqTest
|
|||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成随机消息字节数组
|
||||
/// </summary>
|
||||
/// <param name="len"></param>
|
||||
/// <returns></returns>
|
||||
protected virtual Byte[] RandomMsgBytes(int len = 10) {
|
||||
var str = RandomString(len);
|
||||
return Encoding.UTF8.GetBytes(str);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建队列
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in New Issue
Block a user