我正在使用 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)
. 似乎我丢失的文件更少,但仍然丢失它们。如何避免?任何帮助将不胜感激。