Остановить + прервать существующий маршрут - PullRequest
3 голосов
/ 01 августа 2020

У меня есть верблюжий маршрут, ожидающий блокировки. Давайте смоделируем это следующим образом:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...