如何从通用MessageSource启动Spring Integration DSL Poller

Day*_*aco 2 spring spring-integration

我们的Spring Integration DSL流程之一是基于cron表达式的简单轮询器.通常,您将配置PollableChannel实现(例如QueueChannel)或使用InboundAdapter(例如FTP,HTTPS,S3等)来处理具有轮询属性的入站消息.

在我们的例子中,我们不会有任何入站消息要处理.我们只想在每晚基础上启动基于SI DSL的IntegrationFlow,最好使用cron表达式.有没有办法我们可以使用轮询器或"伪造"基于cron作业的消息启动SI流程?

Art*_*lan 6

IntegrationFlows
        .from(() -> new GenericMessage<>(""),
                e -> e.poller(p -> p.cron("0 0 0 * * ?")))
Run Code Online (Sandbox Code Playgroud)

由于没有类似NullMessageMessagenull负载的东西,我们只发送一个带有空字符串的"假"消息作为有效负载.你可以忽略下游的那条消息.

第一个Lambda实现MessageSource<T>了你提到的(S)FTP,S3,JDBC等.

它仍然是相同的入站通道适配器,a-la等效于 <int:inbound-channel-adapter ref="">