聚合没有列表的消息

时间:2016-10-06 19:56:38

标签: java spring spring-integration

我正在使用spring集成,我需要按10k打包消息组。我不想将它存储到List中,因为后来10k可能变得更大,持久存储也不是我的选择。我只是想让几个线程将消息发送到单个线程中,我可以将它们计数并将磁盘写入包含10k行的文件中。在计数器达到10k后,我将新文件集计数器创建为零,依此类推。它可以正常使用直接通道,但如何告诉几个线程(我正在使用

  <int:dispatcher task-executor="executor" />

)将消息发送到单个线程?感谢

1 个答案:

答案 0 :(得分:0)

您可以使用QueueChannel来完成任务。任何线程都可以同时向它发送消息。另一方面,您应该根据您的要求,使用PollingConsumer轮询器配置fixed-delay - 单线程。我的意思是具有fixed-delay的轮询器和DirectChannel下游的所有内容将仅在单线程中完成。因此,您可以在那里达到计数和翻转逻辑。

没有什么可以向您展示,因为该配置是直截了当的:不同的服务将消息发送到同一QueueChannelfixed-delay轮询器确保为您提供单线程读取。