私は片面にいくつかのメッセージを送信し、別のアプリケーションで受信するRabbitMqでキューを作成したいと思います。 I'amは、次のコードでこれを行う: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は、そうでない場合ReceiveFromメソッドに対して指定されたURI、同じURIを持つバスの終点を決定する必要があります。しかし、それは私の出版社が同じキューの消費者でもあることを意味します。受信者がいない場合、すべてのメッセージはqueuename_errorキューに移動します。受信機があると、すべてが正常であるようです。
私は間違っていますか?私はなぜメッセージがエラーキューに送られるのか理解しています。パブリッシャーは購読していませんが、同時に彼は消費者ですから、 エラーが発生します。受信者が(再)起動したときにエラーキューからメッセージを回復することは可能ですか?
masstransitは2.10.0.0です。
ありがとうございます。
masstransitを<3.0.0バージョンにアップグレードすることをお勧めします。より優れたAPIがあります。 masstransit v3以降のドキュメントは次のとおりです。http://masstransit-project.com/MassTransit/ –
それ以降のバージョンは使用できません。 – Sharov