1

Java DSL を使用して、ディレクトリとハンドラーの統合フローをポーリングするファイル ポーラー/チャネル アダプターをセットアップしました。しかし、別のディレクトリ/チャネルアダプターを追加して同じハンドラーにブリッジする方法についての参照はありません。これが私のコードです。

@Bean
public IntegrationFlow integrationFlow(JobLaunchingGateway jobLaunchingGateway) {
    return IntegrationFlows.from(Files.inboundAdapter(new File(incomingDir)).
                    filter(new SimplePatternFileListFilter("*.csv")).
                    filter(new AcceptOnceFileListFilter<>()),
            c -> c.poller(Pollers.fixedRate(500).maxMessagesPerPoll(1))).
            handle(fileMessageToJobRequest()).
            handle(jobLaunchingGateway).
            log(LoggingHandler.Level.WARN, "headers.id + ': ' + payload").
            get();
}
4

2 に答える 2

1

Spring Integration のファースト クラス市民の 1 つはMessageChannelエンティティです。定義内のエンドポイント間に明示的なチャネルをいつでも設定IntegrationFlowし、それらに明示的にメッセージを送信できます。

「マージ」ユースケースの場合、.channel()前に配置.handle()して2番目のディレクトリの2番目のフローを宣言することをお勧めしますが、そのフローの最後で同じを使用して.channel()、このフローから最初のフローの途中にメッセージを「ブリッジ」します.

詳細については、リファレンス マニュアルを参照してください: https://docs.spring.io/spring-integration/docs/5.0.0.RELEASE/reference/html/java-dsl.html#java-dsl-channels

于 2017-12-12T23:01:51.397 に答える