15.7. 使用简单语言
您可以将 简单 语言与控制总线一起使用,例如停止特定路由,您可以向 "controlbus:language:simple"
端点发送一条消息,其中包含以下消息:
template.sendBody("controlbus:language:simple", "${camelContext.getRouteController().stopRoute('myRoute')}");
template.sendBody("controlbus:language:simple", "${camelContext.getRouteController().stopRoute('myRoute')}");
因为这是一个 void 操作,因此不会返回。但是,如果您希望路由状态,您可以执行以下操作:
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
使用 route
命令控制路由的生命周期是更容易的。您可以通过 language
命令执行具有更强大的功能(如 Groovy 或一些 简单 语言)的语言脚本。
例如,要关闭 Camel 本身,您可以:
template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
我们使用 async=true
异步停止 Camel,否则我们将在处理发送到控制总线组件的消息时尝试停止 Camel。
注意
您还可以使用其他语言,如 Groovy 等。