每周二8点使用apache camel轮询一个文件目录

时间:2014-06-18 12:45:10

标签: apache-camel

我正忙于一个apache camel项目,该项目每周二8:00自动将文件上传到SFTP服务器。

我想将我的apache camel路线的延迟设置为:每周二晚上8点。

我将如何做到这一点?

让我们说' A'是我的接送地点和' B'是我的目的地。

3 个答案:

答案 0 :(得分:7)

使用Quartz组件作为日程安排程序,pollEnrich用于阅读文件,使用FTP组件发送内容:

from("quartz://myscheduler?cron=0+0+8+?+*+THU")
    .pollEnrich("file:inbox?fileName=data.txt")
    .to("ftp://foo@127.0.0.1:21/?password=pwd")

有关cron表达式的更多信息,请访问here

答案 1 :(得分:3)

如果您使用Apache Camel 2.12或更高版本,则文件使用者(以及任何其他基于调度程序的使用者)可以选择使用开箱即用的cron调度程序,可以是spring或quartz2。

我写了一篇关于这个总结的博客文章

其调度程序选项

此页面上有一些示例,请参阅 QuartzScheduledPollConsumerScheduler

部分

答案 2 :(得分:0)

您通常可以使用camel-quartz组件,如下所示:

from("quartz://myscheduler?cron=0+0+8+*+*+2")
    // do stuff

但是第二眼看,我不确定这会如何作为sftp消费者(你能在骆驼中做from("quartz...").from("sftp...")吗?我不太确定。

this thread上有关于如何通过RoutePolicy实现此功能的信息。

祝你好运。