Остановить + прервать существующий маршрут
У меня есть верблюжий маршрут, который ждет на замке. Смоделируем это следующим образом:
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("timer://foo?period=100")
.to("direct:bar");
from("direct:bar")
.routeId("test")
.to("log:receive")
.process(new Processor() {
@Override
public void process(final Exchange exchange) throws Exception {
System.out.println("sleeping indefinitely");
try {
Thread.sleep(Long.MAX_VALUE);
} catch (final InterruptedException exception) {
exception.printStackTrace();
}
System.out.println("not sleeping indefinitely");
}
});
}
});
В определенный момент я хочу прекратить это test
маршрут как можно скорее. Есть ли способ остановить этот маршрут, прервав поток, в настоящее время обрабатывающий этот маршрут? Я старалсяstopRoute
как показано ниже, но это не прерывает поток.
context.getRouteController().stopRoute("test", 1, TimeUnit.NANOSECONDS);
Я использую Camel версии 3.4.x.