У меня есть настройка File Poller с исполнителем задач
ExecutorService executorService = Executors.newFixedThreadPool(10);
LOG.info("Setting up the poller for directory {} ", finalDirectory);
StandardIntegrationFlow standardIntegrationFlow = IntegrationFlows.from(new CustomFileReadingSource(finalDirectory),
c -> c.poller(Pollers.fixedDelay(5, TimeUnit.SECONDS, 5)
.taskExecutor(executorService)
.maxMessagesPerPoll(10)
.advice(new LoggerSourceAdvisor(finalDirectory))
))
//move file to processing first processing
.transform(new FileMoveTransformer("C:/processing", true))
.channel("fileRouter")
.get();
Я использую AcceptOnceFilter на основе lastUpdated.
Все работает нормально, у меня был каталог, в который я опрашивал файлиз внешней системы.Файл все еще копировался, и приложение подобрало и обработало частичные данные.
Как я могу убедиться, что файл полностью записан перед обработкой.
Я не могу изменить внешнюю систему, так как онипросто скопируйте файлы в папку.Они не изменят свою систему.