如果 ftp 上的文件被锁定,如何抛出异常? Spring DSL

How to throw an Exception if file on ftp is locked? Spring DSL

我的路由正在从端点进行轮询 ftp://localhost:21/folder?username=user&password=password&delay=15s&move=processed&moveFailed=error&sendEmptyMessageWhenIdle=true&passiveMode=true. 如果我只添加 readLock=rename,Camel 将忽略麻烦的文件并将其留在文件夹中。

如何实现骆驼行为,以便如果文件在 readLockTimeoutn 次尝试后仍被某人锁定,Camel 将不会跳过该文件,但抛出异常。

我想这可以通过实现自定义 ReadLockStrategy 来建立(接口是 GenericFileExclusiveReadLockStrategy

您可以使用选项 exclusiveReadLockStrategy 设置自定义策略(参见 File2 组件选项)。

P.S。也许最好覆盖开箱即用的策略之一,例如 FileLockExclusiveReadLockStrategy。然后,您需要做的就是重写 acquireExclusiveReadLock() 方法以在它的超级 returns false.

时抛出异常。