首先向Artem Bilan提问(我和你以前的同事一起工作)
我有这样的流程:
JmsTemplate
根据要求,我必须在每个静态期间发送不同数量的消息(它由一些具有“10,20,100 ...”结构的“配置文件”提供,意味着“在第一分钟发送10条消息,在第二分钟发送20条消息” ,第三分钟100 msg ......“)。
实施期间非常简单,由PeriodicPoller
提供。
问题是要求的第一部分。使用JdbcPollingChannelAdapter
实现SqlParameterSource
获得给定数量的表行的情况,但不符合上述“瓶颈”原因。是否可以“从频道获取N条消息”?
我尝试在适配器旁边的通道上使用一些ReleaseStrategy
来实现它,但没有运气将其与定期轮询相结合。如果有人帮助我,我将详细描述使用的方法。
与使用Java DSL描述集成流上下文相关的其他困难,同时大部分示例都使用XML。
感谢您的任何建议!
答案 0 :(得分:2)
在与Dmitrii私下讨论后,我们提出了这个解决方案。
<强>要求强>
<强>解决方案强>
QueueChannel
maxMessagesPerPoll
<poller>
(PollerMetadata
)有adviceChain
选项。 Advice
(MethodInterceptor
)PollingConsumer
maxMessagesPerPoll
更改invocation.proceed()
AtomicInteger
bean来增加ChannelInterceptor#preSend
中的reset
和Advice
maxMessagesPerPoll
与计数器进行比较。