在X时间之后没有从FTP中提取文件时,Apache Camel会抛出警报

时间:2014-05-19 22:50:23

标签: ftp apache-camel

我编写了一个从FTP服务器提取文件并对其进行一些消息转换的驼峰路由。一个示例场景是我每隔1小时轮询一次FTP服务器。如果过去12小时内没有提取任何文件,我想发送提醒通知。

我已阅读this other stackoverflow question并添加了sendEmptyMessageWhenIdle = true选项,以便我可以判断何时没有轮询新邮件。但是,如果在X时间之后没有轮询消息,我只想发送警报。我一直在考虑使用一个每X时间发送一次警报的计时器,但是如果轮询了一条新消息,那么计时器的倒计时就会被刷新。有谁知道如何实现这样的计时器?是否有更简单的方法提醒我没有想到?

无关的问题,当FTP登录用户名包含" @"时使用的语法是什么?符号?这样的事情:from(" ftp:user @ server @ ftpserver.com / password = password")

先谢谢你们

1 个答案:

答案 0 :(得分:1)

计时器的替代方法可能是在您第一次收到空消息时进行记录。存储日期和时间然后继续进行轮询。每当您点击另一条空信息时,请检查日期和时间差是否大于阈值,然后发出警报。

如果您收到空消息,然后您轮询某些内容,则重置该状态。它是一个非常简单的有限状态机,您需要编码。可能不如计时器笨拙。

只是一个想法。