我需要能够从rabbitmq接收消息,做一些转换(从1输入消息,我创建1000条消息),然后按照以下方式处理这1000条消息:我按批次推送消息,然后睡5秒
你可以看到下面的代码,我需要的帮助是最后一步 - 如何以这种方式进行消息批处理?
@Bean
public IntegrationFlow refreshFlow() {
return IntegrationFlows
//get messages from rabbitmq
.from(refreshInboundAdapter())
//convert to POJO
.transform(new JsonToObjectTransformer(RefreshRequest.class))
//make 1 -> 1000 messages (but release in batches of 10, not all)
.<RefreshRequest, List<ElasticMatch>>transform(m -> componentConfig.matchRefreshService().processRequest(m))
//HERE WAIT 5 seconds and forward to rabbit in batches of 10
.handle(refreshOutboundEndpoint())
.get();
}
答案 0 :(得分:0)
不确定你的意思&#34;等待5秒&#34;,但&#34;分批发布10&#34;对于聚合器来说,这正是一项任务。您需要有一些人为correlationKey
,配置expireGroupsUponCompletion = true
和MessageCountReleaseStrategy
。
有关详细信息,请参阅Reference Manual。