我正忙于一个apache camel项目,该项目将每周二8:00自动上传文件到SFTP服务器的过程。
我想将apache camel路由的延迟时间设置为:每周二8:00。
我该怎么做呢?
假设"A"是我的上车地点,"B"是我的目的地。
使用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表达式的更多信息可以在这里找到
如果您使用Apache Camel 2.12或更高版本,那么文件消费者(以及任何其他基于调度器的消费者)可以选择使用开箱即用的cron调度器,无论是来自spring还是quartz2。
我写了一篇关于这个的博客文章,总结了这个
- http://www.davsclaus.com/2013/08/apache -骆驼- 212甚至更容易cron.html
是调度选项
- http://camel.apache.org/file2
本页有一些示例,参见QuartzScheduledPollConsumerScheduler
- http://camel.apache.org/quartz2.html
您通常可以这样使用camel-quartz
组件:
from("quartz://myscheduler?cron=0+0+8+*+*+2")
// do stuff
但是第二看,我不确定这将如何作为sftp消费者工作(你能在骆驼做from("quartz...").from("sftp...")
吗?我不太确定。
在这个线程中有关于如何通过RoutePolicy
实现这一点的信息。
好运。