我想創建一個隊列與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