我有以下配置,它设置了一个“MessageReader”pojo 类来处理传入的消息。这在配置时工作正常,但由于我没有太多的 Spring Integration 经验,我对下面发生的事情以及是否可以监控有一些基本的问题。
- 我无法找到有关底层消息侦听器容器轮询消息队列的频率的文档。我错过了什么吗?如果我正确理解了以下配置,它将默认使用“DefaultMessageListenerContainer”。我看到该类扩展了 AbstractPollingMessageListenerConainer。我看到了一个 receiveTimeout,但没有看到任何指定轮询间隔的内容。有这样的设置吗?当我使用如下所示的配置进行测试时,它似乎是瞬间完成的。我们的需求没有那么激进;我们可以每 30 秒左右轮询一次队列。
- 有没有一种方法(可能只是一个 log4j 设置)可以在容器唤醒并在队列中查找消息(即使没有找到)时进行记录?我们的维护团队希望能够验证该过程是否“正在运行”,即使没有发送任何消息。换句话说,如果容器可能已挂起,他们想要一种故障排除方法。这将只是一个排除挂起线程的工具,如果消息被认为已经发送,但没有看到它们被接收。
我意识到我可能必须配置一个容器而不是像下面那样接受默认值,但是如果我能完成上述事情,我就可以了?
<int:channel id="inboundChannel" />
<jms:message-driven-channel-adapter
connection-factory="myConnectionFactory"
destination="queue" channel="inboundChannel" />
<int:service-activator input-channel="inboundChannel">
<bean class="com.myapp.MessageReader" />
</int:service-activator>