Spring Cloud Dataflow将缓冲的消息发送到输出通道

时间:2017-01-30 09:10:51

标签: java spring spring-integration spring-cloud-dataflow

我有一个缓冲被拒绝邮件的过滤器。一旦我的谓词得到满足,我想将这些缓冲的消息发送到输出通道:

public class MyFilter implements MessageSelector {

    private Buffer buff;

    ...

    @Override
    public boolean accept(final Message<?> message) {
        if (isAcceptable(message))) {
            for (final Message<?> msg : buff.getBuffered()) {
                // accept these as well
            }
            return true;
        } else {
            buff.put(message);
            return false;
        }
    }
}

我如何接受缓冲的消息?有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我建议使用自定义ReleaseStrategy的{​​{3}}是一种很好的方法。当发布策略释放组时,如果输出处理器(配置该方式时为@Aggregator方法)返回Message<?>的集合,它们将作为单独的消息发布。

使用Java配置时,您可能会发现使用Java DSL .aggregate(...)函数比创建@Bean更简单。

聚合器应用启动器目前有aggregator