SFTP ディレクトリがあり、ファイルを読み取り、さらに処理するためにファイルを ServiceActivator に送信します。いつでも、ハンドラーを使用してそれらを並行して処理する必要があります。
これが私の SPring Integration Java DSL フローです。
IntegrationFlows.from(Sftp.inboundAdapter(getSftpSessionFactory())
.temporaryFileSuffix("COPY")
.localDirectory(directory)
.deleteRemoteFiles(false)
.preserveTimestamp(true)
.remoteDirectory("remoteDir"))
.patternFilter("*.txt")), e -> e.poller(Pollers.fixedDelay(500).maxMessagesPerPoll(5)))
.handle("mybean", "myMethod")
.handle(Files.outboundAdapter(new File("success")))
.deleteSourceFiles(true)
.autoCreateDirectory(true))
.get();
更新: ここに私の ThreadPoolExecutor があります:
@Bean(name = "executor")
public Executor getExecutor()
{
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(4);
executor.setMaxPoolSize(4);
executor.setQueueCapacity(20);
executor.initialize();
return executor;
}