我想创建一个队列与RabbitMq在哪里我会发送一些消息在一边,并在另一个应用程序接收。我'与下面的代码这样做:混淆Masstransit ReceiveFrom方法和消费者行为
return ServiceBusFactory.New(x =>
{
var uriString = string.Format(@"rabbitmq://{0}/{1}/{2}?prefetch={3}", host, virtualHost, queueName,
prefetch < 1 ? 1 : prefetch);
x.UseRabbitMq(r => r.ConfigureHost(new MessageUrn(uriString), h =>
{
h.SetUsername(user);
h.SetPassword(password);
h.SetRequestedHeartbeat(3);
}));
x.ReceiveFrom(uriString);
x.UseJsonSerializer<ServiceBusConfigurator>();
f(x);
});
MessageUrn URI和ReceiveFrom应该有相同的URI,否则URI的ReceiveFrom方法规定确定公共汽车终点。但这意味着我的发布者也是同一队列的消费者。当没有接收者时,所有消息都进入queuename_error队列。当有接收器时,一切似乎都可以。
我在做什么错了?我明白为什么消息会进入错误队列 - 因为发行者没有订阅他们,但同时他是消费者,因此会发生 错误情况。当(重新)启动接收器时,是否可以从错误队列中恢复消息?
masstransit是2.10.0.0。
在此先感谢。
我建议你将masstransit升级到<= 3.0.0版本,它有更好的API。这里是masstransit v3及更高版本的文档:http://masstransit-project.com/MassTransit/ –
我无法使用更高版本。 – Sharov