Spring 集成 - Files.inboundAdapter,服务器错误打开的文件太多
Spring Integration - Files.inboundAdapter, Server Error Too many files opened
您好,我是 spring 集成的新手,我有下面的代码流,目录中有 read/scan 个文件,我遇到了打开太多文件的服务器错误。我想知道如果以下导致问题?
轮询器是否每次都打开新文件而不关闭以前的文件?
感谢您的帮助。
@Bean
public IntegrationFlow jsonFileRefreshFlow(){
return IntegrationFlows.from(Files.inboundAdapter(new File(filePath))
.autoCreateDirectory(true)
.patternFilter("*.json")
.watchEvents(FileReadingMessageSource.WatchEventType.CREATE,
FileReadingMessageSource.WatchEventType.MODIFY)
.useWatchService(true)
.scanEachPoll(true)
.preventDuplicates(false)
e -> e.poller(Pollers.fixedDelay(1000, TimeUnit.MILLISECONDS)
.maxMessagesPerPoll(Integer.MAX_VALUE)))
.<File, Resource>transform(p -> new FileSystemResource(p))
.<Resource>handle((p,h) -> {
try{
// process payload
}catch (IOException ioEx){
log.error("Error refreshing json specs {}", ioEx);
}finally {
try {
p.getInputStream().close();
} catch (IOException e) {
log.error("error closing stream");
}
}
return null;
}).get();
框架没有打开文件;大概您的 .handle()
方法可以;所以它负责关闭它。
您好,我是 spring 集成的新手,我有下面的代码流,目录中有 read/scan 个文件,我遇到了打开太多文件的服务器错误。我想知道如果以下导致问题? 轮询器是否每次都打开新文件而不关闭以前的文件?
感谢您的帮助。
@Bean
public IntegrationFlow jsonFileRefreshFlow(){
return IntegrationFlows.from(Files.inboundAdapter(new File(filePath))
.autoCreateDirectory(true)
.patternFilter("*.json")
.watchEvents(FileReadingMessageSource.WatchEventType.CREATE,
FileReadingMessageSource.WatchEventType.MODIFY)
.useWatchService(true)
.scanEachPoll(true)
.preventDuplicates(false)
e -> e.poller(Pollers.fixedDelay(1000, TimeUnit.MILLISECONDS)
.maxMessagesPerPoll(Integer.MAX_VALUE)))
.<File, Resource>transform(p -> new FileSystemResource(p))
.<Resource>handle((p,h) -> {
try{
// process payload
}catch (IOException ioEx){
log.error("Error refreshing json specs {}", ioEx);
}finally {
try {
p.getInputStream().close();
} catch (IOException e) {
log.error("error closing stream");
}
}
return null;
}).get();
框架没有打开文件;大概您的 .handle()
方法可以;所以它负责关闭它。