我正在使用Apache camel来触发基于计时器事件的各种操作。要触发计时器事件,我使用的是camel-quartz
。示例触发器如下所示:
from("quartz://job_timers/customer_activation?cron=0+0+0+*+*+?+*&trigger.timeZone=America/Chicago")
.routeId("TrigCustActivation")
.log(LoggingLevel.INFO, "Triggered Customer Activation Job")
.to("direct://set/headers/activation")
.to("direct://customer/activation");
在一段时间内,此类触发器的数量增加了很多。他们将会增加更多。因此,我没有保留何时触发哪个作业的硬拷贝,而是计划创建一个Web路由,这样当我执行GET请求时,它将获取所有活动路由,并打印其RouteIds(我将更新所有RouteId也有时间。比如说,上面的流程的routeId将变为“TrigCustActivation_00_00_CST_Daily”。
我能够在应用程序启动时打印所有路径,但无法通过GET请求动态获取这些路径。
我们可以从正在运行的路线访问其他RouteId吗?我的方法可行吗?
答案 0 :(得分:1)
是的CamelContext
上有API可以获取所有当前路由,然后您可以获取其ID等。请参阅此类的javadoc。