Nam*_*ian 4 java architecture apache-camel
我最近开始玩Apache骆驼.因此,作为实验类型,我想我会创建一个简单的项目,每隔几秒扫描一个文件目录,看看我是否有一个新文件选择该文件,然后将其复制到另一个文件夹.后来我想把这些文件放到数据库中.
因此,首先要保持基础,我创建了一个如下的路线:
from("file://c:/CTest/inbox?noop=true")
.to("file://C:/Ctest/outbox");
Run Code Online (Sandbox Code Playgroud)
这工作,我认为可以添加一个计时器.最初我犯了使用计时器的错误并尝试这样做:
from("timer://myTimer?period=50").to("file://c:/CTest/inbox?noop=true")
.to("file://C:/Ctest/outbox");
Run Code Online (Sandbox Code Playgroud)
然后,我有一些奇怪的例外,因为我无法写一个文件.然后我通过在定时器路由之后放置文件路由它变成了生产者.所以我研究了一下,这里我很困惑.
因此,根据我的理解,文件组件使用预定的轮询模式.文件路由网址模式中甚至还有pollStrategy选项.还有一个投票消费者EIP.
所以这就是我的困惑所在.
1)如果文件组件使用预定的轮询模式,它是否使用/实现轮询累加器EIP?
2)如何每隔30秒向文件组件添加一个简单的计划以消耗文件?
3)如何通过实现org.apache.camel.PollingConsumerPollStrategy来创建自己的pollingStrategy?
我怀疑我可以这样做:
from("file://c:/CTest/inbox?noop=true&pollStrategy=some-expression")
.to("file://C:/Ctest/outbox");
Run Code Online (Sandbox Code Playgroud)
我试图找到一些这方面的例子,但我要么没有看正确的地方或完全错过了情节.我想这不是一个与代码相关的问题,而是更多的是这种方法的最佳策略/模式.
谢谢Namphibian
Camel提供了一个名为routepolicy http://camel.apache.org/routepolicy.html的功能
它允许您将策略关联到路由.我们提供了许多开箱即用的政策.政策可以是任何一种逻辑.例如,我们提供了一个限制策略,它可以根据线程进行暂停/恢复路由.
另一个开箱即用政策是预定的政策,因此您可以为路线指定"开放时间".所以你也可以使用它.但请记住它的开放时间,因此您指定开始/结束时间.有基于石英的cron政策http://camel.apache.org/cronscheduledroutepolicy.html这样你就可以配置这周一开始的路线,并让它运行了一小会儿.
如果您需要在路线内停止路线,那就更复杂了,这里有一个常见问题解答:http://camel.apache.org/how-can-i-stop-a-route-from -a-route.html
| 归档时间: |
|
| 查看次数: |
12187 次 |
| 最近记录: |