Я использую Apache Camel 2.11.1Потеря файлов в верблюд, когда потребление с несколькими потоками
Есть такой маршрут:
from("file:///somewhere/").
threads(20).
to("direct:process")
Некоторое время я получаю это исключение: org.apache.camel.InvalidPayloadException
с сообщением
No body available of type: java.io.InputStream but has value: GenericFile[/somewhere/file.txt] of type:
org.apache.camel.component.file.GenericFile on: file.txt. Caused by: Error during type conversion from type:
org.apache.camel.component.file.GenericFile to the required type: byte[] with value GenericFile[/somewhere/file.txt]
due java.io.FileNotFoundException: /somewhere/file.txt (No such file or directory).
Поскольку я вижу много файлов .camelLock в каталоге, я предполагаю, что это происходит из-за попытки нескольких потоков обрабатывать один и тот же файл. Как этого избежать?
ОБНОВЛЕНИЕ 1
Пытались использовать scheduledExecutorService
и удалить threads(20)
. Кажется, я теряю меньше файлов, но все равно теряю их. Как избежать? Любая помощь будет оценена.
Что вы делаете прямо: процесс? И какая ОС вы используете? –
Я использую Linux. Фактически прямо: процесс просто считывает файл и работает с моими внутренними компонентами. – Archer
получил ту же проблему, некоторые файлы удалены. Я вижу, что процесс выполняется из журналов, но затем не может быть найден ни в какой ошибке, сделан или в текущей папке. Полностью ушел – hsnkhrmn