0

我一直在通过 Spring 使用 Camel 将文件从 FTP 拉到本地磁盘,然后处理它们。我希望在路由执行但找不到任何要提取的文件时收到警报。有没有办法用股票骆驼做到这一点?

如果不; 我想做的是以自定义“验证器”的形式实现一个中间人。然后我会从 camel-ftp 组件路由到自定义验证器,然后它可以进行一些检查,在需要时发送通知,并将文件路由到要写入文件系统的文件组件。

我尝试添加这个中间人,似乎如果没有找到 FTP 文件,它甚至不会通知中间人。

4

1 回答 1

1

您可以使用该选项

sendEmptyMessageWhenIdle=true

如文档所述(因为 ftp 组件扩展了文件组件并继承了它的选项):

http://camel.apache.org/file2

使用 sendEmptyMessageWhenIdle 时,如果没有要轮询的 ftp 文件,则会发送一条空消息。

然后,您可以使用过滤器或基于内容的路由器来检测空文件,然后发送电子邮件。

您也可以考虑将延迟选项设置为更高的值,这样您就不会尝试如此频繁地轮询,因为默认情况下延迟为 500 毫秒。

delay=10s

例如改为每 10 秒轮询一次。

于 2013-08-06T06:03:44.567 回答