Spring batch 在Spring集成中批处理出站适配器上的发送操作
我在Spring集成流的末尾有一个出站通道适配器(在本例中是SFTP,但对于JMS或WS也是如此)。通过在每次有消息流时使用直接通道,消息将同步发送。 现在,我需要一路处理消息,直到它们到达出站适配器,但在发送消息之前要等待预定的间隔。换句话说,批处理发送操作。 我知道Spring批处理项目可能会为此提供解决方案,但我需要找到一个包含Spring集成组件的解决方案(在int-*名称空间中)Spring batch 在Spring集成中批处理出站适配器上的发送操作,spring-batch,spring-integration,spring-jms,Spring Batch,Spring Integration,Spring Jms,我在Spring集成流的末尾有一个出站通道适配器(在本例中是SFTP,但对于JMS或WS也是如此)。通过在每次有消息流时使用直接通道,消息将同步发送。 现在,我需要一路处理消息,直到它们到达出站适配器,但在发送消息之前要等待预定的间隔。换句话说,批处理发送操作。 我知道Spring批处理项目可能会为此提供解决方案,但我需要找到一个包含Spring集成组件的解决方案(在int-*名称空间中) 实现这一点的典型模式是什么?聚合器是为您准备的 在您的特定情况下,我会这样称呼它,因为您与组消息没有任何特
实现这一点的典型模式是什么?聚合器是为您准备的 在您的特定情况下,我会这样称呼它,因为您与组消息没有任何特定的相关性,只需要构建一个您所称的
batch
因此,我认为您的聚合器配置可能如下所示:
<int:aggregator input-channel="input" output-channel="output"
correlation-strategy-expression="1"
release-strategy-expression="size() == 10"
expire-groups-upon-completion="true"
send-partial-result-on-expiry="true"/>
表示correlation strategy expression=“1”
任何传入消息组
允许通过10条消息形成和发布批release strategy expression=“size()==10”
要求聚合器从it存储中删除发布组。允许为相同的expire groups on completion=“true”
创建一个新组(在本例中为correlationKey
)1
指定当我们没有足够的消息来构建整个批时,必须在expire函数上执行send partial result on expire=“true”
释放操作(发送到正常
)。对于这些选项,请遵循上述文档输出通道