当异常在消费者中触发时,我可以更改发送到 _error 队列的消息吗?

时间:2021-04-21 12:30:58

标签: masstransit

大家。

我有一个类似这样的消息合同:

public class Message
{
   public List<string> Records { get; set; }
}

我的信息是:

var message = new Message() {Records = new List<string>()
{
   "Record 1",
   "Record 2",
   "Fault"
}};

消费者是:

public class MessageConsumer : IConsumer<Message>
{
   public MessageConsumer() {}

   public Task Consume(ConsumeContext<Message> context)
   {
      if (context.Message.Records.Any(m => m.Contains("Fault")))
      {
         var faultedRecords = context.Message.Records.Where(r => r.Contains("Fault")).ToList();
         var errorMessage = new Message() { Records = faultedRecords };

         throw new Exception("Message has faulted records");
      }

      //...something else

      return Task.CompletedTask;
   }
}

errorMessage 发送到 _error 队列的正确方法是什么?我知道 Receive Pipeline,但我无法选择正确的位置来更改消息内容。

谢谢!

0 个答案:

没有答案