我正在开发自定义骆驼组件。它只有消费者支持意味着它只能从端点调用。假设我的自定义组件注册了“mycomp”方案。
需求 1:我们有需要支持以下路线的用例。
from("mycomp:Something").to("file:data/outbox");
上面的路线正在工作,因为我已经为端点提供了 createConsumer() 的实现
需求 2:现在,我们还有一个要求是在特定时间从上述路线开始。(假设每天早上 08:00)
对于 Req2,我决定使用骆驼石英组件。正如我们所知,石英也只支持来自端点和我的 req2 的端点,就像..
来自("quartz://myTimer?cron=0+0+8+*+*+*")
现在,问题:
我的自定义组件需要 from() 端点,它还需要在特定时间触发。但石英也仅适用于 from() 端点。在 Camel 中,我不能有两条 from 像 .. from("xxx").from("yyy") ..
解决方法之一:
我可以开发为“mycomp”定义的启动路线的处理器,最终路线将类似于..
from("quartz://myTimer?cron=0+0+8+*+*+*") .process (ProcessorWhich_StartsMyRoute );
来自(“mycomp:某事”)。没有自动启动()。routeId (" MyRoute ").to("file:data/outbox");
但是我再次需要想出一个处理器,它使用石英调度在特定时间停止 MyRoute .. 它会像..
from("quartz://myTimerStop?cron=0+30+8+*+*+*") .process (ProcessorWhich_StopsMyRoute );
上面,我在上午 8 点 30 分停下来。但这是此解决方案的限制,在现实生活中,我不知道什么是停止 MyRoute 的安全时间。
请分享您对如何实现 Req1 和 Req2 的想法/意见。请询问您是否需要有关我的用例的更多详细信息。