我正在使用带有RabbitMq的Mastransit 3.5.0。如果队列使用者抛出异常,则默认情况下将其处理为MoveExceptionToTransportFilter并移至_error队列。对于_error队列,我有单独的消费者: 消费(ConsumeContext> context)
故障的行为是相当不同的。部分错误是从_error队列处理和删除的,但部分错误消息仍保留在错误队列中,并且不会被此消费者使用。据我所知,如果我有Fault消费者,那么_error队列应该是空的。
我无法找到解释,为什么错误仍然在队列中。也许是因为这些故障曾被消耗过,但我无法在标题中找到任何迹象或者在哪里?
答案 0 :(得分:2)
这不正确。
您不应该使用错误队列。出于诊断目的,错误队列会累积使其使用者崩溃的消息。
Faut<T>
消息另外发布以将消息移动到错误队列。这两件事是无关的。
如果您有Fault
或Fault<T>
个事件的消费者,那么您就是这样做的 - 消费这些事件。它与错误队列中的消息无关。