如果没有从FTP中提取文件,请发送电子邮件通知

时间:2013-08-05 18:49:02

标签: java spring apache-camel

我一直在使用Camel通过Spring将文件从FTP拉到本地磁盘然后处理它们。我想在路线执行时收到警报,但没有找到任何要拉的文件。有没有办法用库存驼峰来做到这一点?

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用选项

sendEmptyMessageWhenIdle=true

正如文档所记录的那样(因为ftp组件扩展了文件组件并且在其中提供了选项):

http://camel.apache.org/file2

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

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

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

delay=10s

例如,每隔10秒轮询一次。