繁体   English   中英

在 spring 集成流 DSL 中间实现轮询

[英]Implementing Polling in Middle of spring Integration flow DSL

我正在编写一个 spring 集成 DSL 流程。 如下图所示。

集成流程

正如您在流程中看到的,我需要从数据库中读取 1 百万个实体。 我想避免阅读单个 go 中的内容。

我想实现轮询,它将以固定间隔读取 N 个实体并将其发送以进行处理。

在我阅读的轮询示例中,轮询用作流程的第一步。 就我而言,我想在流程中间实施。

请让我知道如何实现这一点。

任何帮助表示赞赏。 提前致谢。

如果您想使用一些外部刺激来触发一些轮询流的开始,请使用控制总线:

@SpringBootApplication
public class So63337649Application {

    public static void main(String[] args) {
        SpringApplication.run(So63337649Application.class, args);
    }

    @Bean
    IntegrationFlow trigger(ConnectionFactory connectionFactory) {
        return IntegrationFlows.from(Amqp.inboundAdapter(connectionFactory, "foo"))
                .transform(msg -> "@poller.start()")
                .channel("control.input")
                .get();
    }

    @Bean
    IntegrationFlow control() {
        return f -> f.controlBus();
    }

    @Bean
    IntegrationFlow mainFlow() {
        return IntegrationFlows.from(() -> "foo", e -> e
                    .id("poller")
                    .autoStartup(false)
                    .poller(Pollers.fixedDelay(5000)))
                .handle(System.out::println)
                .get();
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM