XmlDocument
我有这样的情况,我希望以前的Apache骆驼路线完成然后它应该再次触发相同的路线。
以下是我尝试但未成功的内容。
我尝试在路由启动时将autostartup设置为false,并在完成之前设置为true。
答案 0 :(得分:0)
是吗"我的情况是我希望我之前的交流或Apache骆驼的消息完成" ?
再次重新开始相同的路由 - 如果消费者端点使用轮询,则路由将从头开始通过选择新消息和进程再次开始。
但是,根据我的理解,答案如下: 关于路线或背景,请参考configuring-route-startup-ordering-and-autostartup
您还可以在运行时启动和停止路线
public class RunTimeRouteControl {
private final String routeId;
public RunTimeRouteControl(String routeId) {
this.routeId = routeId;
}
public void stopRoutes(Exchange exchange) throws Exception {
exchange.getContext().getInflightRepository().remove(exchange, routeId);
exchange.getContext().stopRoute(routeId);
}
public void startRoutes(Exchange exchange) throws Exception {
exchange.getContext().getInflightRepository().remove(exchange, routeId);
exchange.getContext().startRoute(routeId);
}
}
Bean配置:
<bean id="runTimeRouteControl" class="RunTimeRouteControl" >
<constructor-arg name="routeId" value="routeName" />
</bean>
在上下文中
<to uri="bean:runTimeRouteControl?method=stopRoutes" />
答案 1 :(得分:0)
我的申请表中有同样的情况。我是通过使用startupOrder
实现的。使用这个可以定义路线必须开始的顺序。
Please Refer this link for more about start up order
-Jay