如何仅在一定时间间隔内暂停骆驼路线

时间:2019-05-08 09:06:18

标签: apache-camel suspend

我正在处理的应用程序是一个Apache Camel中间件,它可以处理多个应用程序之间的交互。我将尝试总结我们遇到的问题。

路线1:

  • 无论何时“应用程序1”发生更改,我们的应用程序都会通过不同的SOAP事件得到通知,然后我们的应用程序将进行一些处理。

  • 此“路由1”以SOAP端点而不是调度程序开头。

现在,客户希望我们为另一个业务需求变更设置修补程序。因此,我们将实施一条新路线:

路线2:

  • 当客户端将txt文件放在输入文件夹中时,处理将开始。

  • 最棘手的问题是,该处理完成后,“应用程序1”将发生一些更改,并且我们的应用程序冒着通过“路线1”获得一些不需要的通知的风险。请注意,这类通知始终是业务需求所必需的,但不仅仅是在此修复程序之后。

  • 因此,我们考虑在工作时间以外运行此修补程序:客户端将在晚上7点至午夜之间将txt文件自己放置在输入文件夹中。

问题是:我们如何在停用时间(下午7点至午夜之间)自动停用“ 路线1 ”,然后在之后自动恢复此“ 路线1 ”修复程序?

谢谢您的帮助。

应用程序1通过路线1通知我们:

from("soapEndpoint")
    .routeId("route1")
    .process(treatment 1)
    .end();

修复程序2之后,应用程序1可能会发生一些更改,这些更改会发出由路由1监听的事件:

from("fileEndpoint")
    .routeId("route2")
    .process(treatment 2)
    .end();

1 个答案:

答案 0 :(得分:0)

您可以设置计划的路由策略以在某些时间停止和启动您的路由。参见SimpleScheduledRoutePolicy