我的路线是从终点进行轮询
ftp://localhost:21/folder?username=user&password=password&delay=15s&move=processed&moveFailed=error&sendEmptyMessageWhenIdle=true&passiveMode=true.
如果我只是添加readLock=rename
,Camel将忽略麻烦的文件并将其保留在文件夹中。
如何实现camel行为,以便在 readLockTimeout
或n
次尝试之后,如果文件仍然被某人锁定,Camel将不会跳过该文件,但会抛出异常。
答案 0 :(得分:3)
我想这可以通过实现自定义ReadLockStrategy来建立(接口是GenericFileExclusiveReadLockStrategy
)
您可以使用exclusiveReadLockStrategy
选项设置自定义策略(请参阅File2组件选项)。
P.S。也许最好覆盖开箱即用的策略之一FileLockExclusiveReadLockStrategy
。然后,您只需要覆盖acquireExclusiveReadLock()
方法,以便在超级返回false时抛出异常。