Apache camel 停止+;在现有路线之间穿插

Apache camel 停止+;在现有路线之间穿插,apache-camel,java-threads,apache-camel-3,Apache Camel,Java Threads,Apache Camel 3,我有一条骆驼路线,它正在等待一个锁。让我们按如下方式进行模拟: context.addRoutes(new RouteBuilder() { @Override public void configure() throws Exception { from("timer://foo?period=100") .to("direct:bar"); from("direc

我有一条骆驼路线,它正在等待一个锁。让我们按如下方式进行模拟:

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");
                    }
                });
    }
});
在某个时间点,我想尽快停止这条
测试
路线。在中断当前处理此路由的线程时,是否有方法停止此路由?我尝试了下面的
stopRoute
,但这似乎没有中断线程

context.getRouteController().stopRoute("test", 1, TimeUnit.NANOSECONDS);

我正在使用Camel版本3.4.x.

如果这不可能,我可以实现一个类似毒丸的机制来通知等待的处理器它被允许停止处理。然而,在这个问题上,我主要感兴趣的是是否有一种直接中断处理器的方法。希望这能有所帮助。如果这是不可能的,我可以实现一个类似毒丸的机制来通知等待的处理器它被允许停止处理。然而,在这个问题上,我主要感兴趣的是是否有一种直接中断处理器的方法。希望这能有所帮助。