メッセージをエラーキューから元のキューに戻そうとしています。 これを行うには、エラーキューにコンシューマを作成し、それを必要なキューに公開しました。 これを試してみると、Consumed Messagesの半分が公開されますが、残りの半分はError_Skipped Queueに送信されます。MassTransit RabbitMQエラーキューの消費メッセージの半分をError_Skippedキューに移動する
私は多くのことを成功させずに試してきました。だから、おそらく私が紛失している単純なものです。
は、ここに私のコードのサンプルです:
public class ClaimsMessage
{
public string Description { get; set; }
public DateTime Date { get; set; }
public bool Handled { get; set; }
}
public class ClaimsMessageErrorConsumer : IConsumer<Fault<ClaimsMessage>>
{
public async Task Consume(ConsumeContext<Fault<ClaimsMessage>> context)
{
try
{
await context.Publish<ClaimsMessage>(context.Message.Message);
}
catch (Exception e)
{
string error = e.Message;
}
}
}
public static IBusControl CreateClaimsErrorConsumerBus(string endPoint)
{
var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
var host = cfg.Host(new Uri("rabbitmq://localhost/"), h =>
{
h.Username("guest");
h.Password("guest");
});
cfg.ReceiveEndpoint(host, endPoint, e =>
{
e.Consumer(() => new ClaimsMessageErrorConsumer());
});
});
return busControl;
}
[シャベル?](https://www.rabbitmq.com/shovel.html)を使用したことがありますか – stuartd
私はシャベルを見ました。しかし、少し基本的です。 ルールを追加して、特定のメッセージだけを後で移動し、残りの部分を後で移動できるようにしたいと考えています。 –
[メーリングリスト](https://groups.google.com/forum/#!forum/masstransit-discuss)を試すことがあります – stuartd