编辑:这是显示我的日志的要点。似乎有 ReceiveMessage
,然后是preSend
on inputChannel
:
https://gist.github.com/louisalexander/04e7d95835521efdd15455c98075e2ea
抱歉如此密集,但我似乎无法弄清楚如何正确利用sqs-message-driven-channel-adapter
在我的上下文文件中,我将其配置为:
<int-aws:sqs-message-driven-channel-adapter
id="my-message-driven-adapter" sqs="sqs" queues="some-queue-of-mine"
max-number-of-messages="5" visibility-timeout="200" wait-time-out="10"
send-timeout="2000" channel="inputChannel" />
我观察到消息正确地进入some-queue-of-mine
(通过删除上面的代码位并将消息发送到队列)。然后我重新启动我的服务器,启用消息驱动适配器,我观察到所有消息都从队列中消耗,但是它们去哪里了?:-/
我的期望是这些消息将被汇集到一个DirectChannel
命名中inputChannel
:
<int:channel id="inputChannel"/>
我有一个service-activator
消费如下:
<int:service-activator ref="myConsumer"
method='execute' input-channel="inputChannel" output-channel="outputChannel">
<int:request-handler-advice-chain>
...
</int:request-handler-advice-chain>
</int:service-activator>
但是,当然,我从来没有看到myConsumer
被调用。我想我对MessageProducer
机制如何工作的理解是不够的。有人可以通过提供 XML 连接的简单示例来纠正我的想法吗?