Masstransit消耗故障而不将其移出_error队列

时间:2019-03-01 14:44:35

标签: c# asp.net .net rabbitmq masstransit

嗨,当我谈到masstransit和RabbitMQ时,我是个菜鸟。我正在尝试实现一个故障使用者,该使用者将仅从错误队列中读取,而不会实际消耗并从错误队列中取出消息。

我设置了一个使用者和一个错误使用者。

<template>
  <div class="wrapper">
    <slot />
  </div>
</template>

<script>
export default {
  name: 'layout-default',
};
</script>

这是我的FaultConsumer类

cfg.ReceiveEndpoint(host, nameof(MassMailJobCommand), e =>
                    {
                        e.Consumer<MassMailJobCommandConsumer>(context);

                        e.Consumer<FaultConsumer<MassMailJobCommand>>(context);
                    });

它将其发送到备用频道。除非我不希望消息离开错误队列,否则它可以正常工作。

非常感谢您。

1 个答案:

答案 0 :(得分:0)

失败的消息总是 移到_error队列中。这就是运输方式的一部分。

Fault<T>创建使用者是一个单独的问题,并且会消耗一条消息发生故障(并移至上述错误队列)时由MassTransit发布的故障事件。

故障事件和将消息移至错误队列均是MassTransit的一部分。

此外,作为一个旁注,我建议将您的错误使用者放在单独的端点(例如fault-consumers)上,以使错误消息不会与其他要处理的消息竞争。接收从队列中读取的端点并根据类型分派消息,这样一堆错误可能会出现在新命令的前面。