0
我有出版商:Masstransit。处理程序不确认消息
static void Main()
{
var bus = ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMq(r => r.ConfigureHost(new MessageUrn("rabbitmq://localhost/test123"), c => { }));
sbc.UseJsonSerializer();
sbc.EnableMessageTracing();
sbc.ReceiveFrom(new MessageUrn("rabbitmq://localhost/test345"));
});
bus.WriteIntrospectionToConsole();
Console.WriteLine("bus endpoint {0}", bus.Endpoint.Address);
while(true)
{
Thread.Sleep(1000);
var msg = new TestMessage {Text = DateTime.Now.ToString()};
Console.WriteLine("Publishing {0}", msg);
bus.Publish(msg);
}
}
发布队列test123,收到队列测试345
当我启动消费与下面的代码:
static void Main()
{
var bus = ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMq();
sbc.UseJsonSerializer();
sbc.EnableMessageTracing();
sbc.ReceiveFrom("rabbitmq://localhost/test345");
sbc.Subscribe(subs => { subs.Handler<TestMessage>(msg => { Console.WriteLine(msg.Text); }); });
});
bus.WriteIntrospectionToConsole();
Console.ReadLine();
}
消费者(用户)处理消息并在控制台上写入。这部分一切都很好。但test123中的消息未被确认。它们数量不断增加,它们处于就绪状态。他们有些如何消耗,但不会消失。
我在做什么错了?
我不明白的另一个问题是,当我删除所有队列时,运行发布者,它只创建test345和test345_error队列。没有test123队列。如果发布者工作一段时间,test345_error中的消息很少,而test345中没有消息。当我启动消费者时(见上面的代码),它开始消费消息,它看起来好。为什么test345队列中没有消息?但不知何故,他们消耗(处理)?
Masstransit v2.10.0.0,RabbitMQ.Client v3.4.3.0。
在此先感谢。
你的两个程序应该有不同的ReceveFrom()地址。 –