Masstransit错误队列正在消耗,但仍然不是空的

时间:2017-09-09 08:08:09

标签: .net rabbitmq masstransit

我正在使用带有RabbitMq的Mastransit 3.5.0。如果队列使用者抛出异常,则默认情况下将其处理为MoveExceptionToTransportFilter并移至_error队列。对于_error队列,我有单独的消费者:  消费(ConsumeContext> context)

故障的行为是相当不同的。部分错误是从_error队列处理和删除的,但部分错误消息仍保留在错误队列中,并且不会被此消费者使用。据我所知,如果我有Fault消费者,那么_error队列应该是空的。

我无法找到解释,为什么错误仍然在队列中。也许是因为这些故障曾被消耗过,但我无法在标题中找到任何迹象或者在哪里?

1 个答案:

答案 0 :(得分:2)

这不正确。

  1. 您不应该使用错误队列。出于诊断目的,错误队列会累积使其使用者崩溃的消息。

  2. Faut<T>消息另外发布以将消息移动到错误队列。这两件事是无关的。

  3. 如果您有FaultFault<T>个事件的消费者,那么您就是这样做的 - 消费这些事件。它与错误队列中的消息无关。