动态设置pollerMetaData的max-messages-per-poll属性

时间:2019-04-23 19:36:26

标签: spring spring-integration

我需要根据计数器值更改每次轮询的最大邮件数。这应该使我能够获取存储在MongoDbMessageStore中的记录的子集

我尝试在PollerMetaData上添加AroundAdvice。使用DirectFieldAccessor设置maxMessagesPerPoll值。但是,每次轮询都会对MongoDbMessageStore中的整个数据集进行轮询和删除。

1 个答案:

答案 0 :(得分:0)

您肯定需要显示一些尝试执行的配置和逻辑,但是看起来您有一个QueueChannel和一个MongoDbMessageStore作为消息的持久存储。

QueueChannelPollingConsumer消耗,该setMaxMessagesPerPoll()可以在逻辑中使用。

因此,每当需要更改该值时,只需为该端点找到合适的bean,然后调用该方法即可在运行时更改设置。