轨道交通错误 queue 正在消耗,但仍不为空

Masstransit error queue is consuming, but still is not empty

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

Fault 的行为是相当不同的。部分错误已从 _error queue 中处理和删除,但部分错误消息仍保留在 error queue 中,不会被该消费者消费。据我了解,如果我有故障消费者,那么 _error queue 应该为空。

我找不到解释,为什么 queue 中仍然有错误。也许是因为这些故障曾经被消耗过,但我在 headers 或其他地方找不到任何指示?

这是不正确的。

  1. 您不应该从错误队列中消费。错误队列会累积导致消费者崩溃的消息,以供诊断之用。

  2. Faut<T> 消息被发布 除了 将消息移动到错误队列。这两件事没有关系。

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