我正忙于一个apache camel项目,该项目每周二8:00自动将文件上传到SFTP服务器。
我想将我的apache camel路线的延迟设置为:每周二晚上8点。
我将如何做到这一点?
让我们说' A'是我的接送地点和' B'是我的目的地。
答案 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
实现此功能的信息。