消费者事件
每当侦听器出现
(消费者)经历某种失败。
活动ListenerContainerConsumerFailedEvent
具有以下属性:
-
container
:使用者遇到问题的侦听器容器。 -
reason
:失败的文本原因。 -
fatal
:一个布尔值,指示失败是否为致命故障。 对于非致命异常,容器会尝试根据recoveryInterval
或recoveryBackoff
(对于SimpleMessageListenerContainer
) 或monitorInterval
(对于DirectMessageListenerContainer
). -
throwable
:这Throwable
那被抓住了。
这些事件可以通过实现ApplicationListener<ListenerContainerConsumerFailedEvent>
.
系统范围的事件(例如连接失败)由所有使用者在以下情况下发布concurrentConsumers 大于 1。 |
如果使用者失败是因为 (默认情况下,如果其队列被独占使用)以及发布事件,则DEBUG
发出 log (自 3.1 起,以前是 WARN)。
要更改此日志记录行为,请提供自定义ConditionalExceptionLogger
在AbstractMessageListenerContainer
实例的exclusiveConsumerExceptionLogger
财产。
此外,SimpleMessageListenerContainer
现在,默认情况下,此类异常后的使用者重启记录在 DEBUG 级别(以前为 INFO)。
一种新方法logRestart()
已添加到ConditionalExceptionLogger
以允许更改此设置。
此外,AbstractMessageListenerContainer.DefaultExclusiveConsumerLogger
现在是 public,允许对其进行子类化。
另请参阅记录通道关闭事件。
致命错误始终记录在ERROR
水平。
这是不可修改的。
在容器生命周期的各个阶段,还会发布其他几个事件:
-
AsyncConsumerStartedEvent
:当使用者启动时。 -
AsyncConsumerRestartedEvent
:当使用者在发生故障后重新启动时 -SimpleMessageListenerContainer
只。 -
AsyncConsumerTerminatedEvent
:当消费者正常停止时。 -
AsyncConsumerStoppedEvent
:当使用者停止时 -SimpleMessageListenerContainer
只。 -
ConsumeOkEvent
:当consumeOk
从代理接收,包含队列名称和consumerTag
-
ListenerContainerIdleEvent
:请参阅 检测空闲的异步使用者。 -
MissingQueueEvent
:检测到缺失队列时。