我一直在使用Camel通过Spring将文件从FTP拉到本地磁盘然后处理它们。我想在路线执行时收到警报,但没有找到任何要拉的文件。有没有办法用库存驼峰来做到这一点?
如果没有;我想做的是以自定义“验证器”的形式实现一个中间人。然后,我将从camel-ftp组件路由到自定义验证器,然后它可以进行一些检查,在需要时发送通知,并将文件路由到文件组件以写入文件系统。
我尝试添加这个中间人,似乎如果没有找到FTP文件,它甚至不会通知中间人。
答案 0 :(得分:1)
您可以使用选项
sendEmptyMessageWhenIdle=true
正如文档所记录的那样(因为ftp组件扩展了文件组件并且在其中提供了选项):
http://camel.apache.org/file2
使用sendEmptyMessageWhenIdle时,如果没有要轮询的ftp文件,则会发送空消息。
然后,您可以使用基于过滤器或内容的路由器来检测空文件,然后发送电子邮件。
此外,您可以考虑将延迟选项设置为更高的值,这样您就不会尝试频繁轮询,因为默认情况下延迟为500毫秒。
delay=10s
例如,每隔10秒轮询一次。