Spring SFTP适配器正在跳过备用文件
我有一个SFTP适配器,它可以从远程位置下载文件并进行转换。但是,它将跳过备用文件。i、 e如果SFTP中的主机文件是1.zip、2.zip、3.zip,那么它只处理1.zip和3.zipSpring SFTP适配器正在跳过备用文件,spring,spring-boot,spring-integration,spring-integration-sftp,Spring,Spring Boot,Spring Integration,Spring Integration Sftp,我有一个SFTP适配器,它可以从远程位置下载文件并进行转换。但是,它将跳过备用文件。i、 e如果SFTP中的主机文件是1.zip、2.zip、3.zip,那么它只处理1.zip和3.zip @Bean @Primary public IntegrationFlow sftpInboundFlow(){ ... .. SftpInboundChannelAdapterSpec messageSourceBuilder = ... .. IntegrationFlowBuilder flowB
@Bean
@Primary
public IntegrationFlow sftpInboundFlow(){
...
..
SftpInboundChannelAdapterSpec messageSourceBuilder =
...
..
IntegrationFlowBuilder flowBuilder = IntegrationFlows
.from(messageSourceBuilder, consumerSpec())
.log(Level.INFO, m -> "INBOUND: " + m.getPayload() + " HEADERS: " + m.getHeaders()
);
return flowBuilder.channel(INBOUND_CHANNEL).handle(new MessageHandler());
// Works fine if changed to
// flowBuilder.channel(INBOUND_CHANNEL).get();
//
}
@Bean
public IntegrationFlow uncompressionfileFlow() {
UnZipTransformer unZipTransformer = new UnZipTransformer();
IntegrationFlowBuilder flowBuilder = IntegrationFlows.from(INBOUND_CHANNEL).transform(unZipTransformer)
.split(new UnZipAbstractMessageSplitter(prop1, prop2))
.log(Level.INFO, m -> "OUTBOUND: " + m.getPayload() + " HEADERS: " + m.getHeaders())
.enrichHeaders(h -> h.headerExpression(FileHeaders.ORIGINAL_FILE,
"payload.headers['" + FileHeaders.FILENAME + "']"));
return flowBuilder.channel(OUTBOUND_CHANNEL).get();
}
您所描述的内容与
DirectChannel
上的循环调度策略完全相关。根据您的配置,我们确实有两个订户使用同一个入站\u频道
:
频道(入站频道)。句柄(新MessageHandler())
from(入站信道)。transform(无ZipTransformer)
DirectChannel
更改为PublishSubscribeChannel
解决了我的问题