Camel RX不会删除S3中消耗的对象

时间:2015-05-05 15:36:14

标签: java apache-camel

如果我使用RouteBuilder配置Camel:

context.addRoutes(new RouteBuilder() {
    @Override
    public void configure() throws Exception {
        from("aws-s3://my-bucket?accessKey=******&secretKey=******")
                .to("stream:out");
    }
});

然后消耗my-bucket中的每个对象,然后立即删除。

但是如果我使用Camel RX

new ReactiveCamel(context).toObservable("aws-s3://my-bucket?accessKey=*****&secretKey=*****", String.class)
        .subscribe(System.out::println);

我发现永远不会删除对象,不断消耗相同的对象。

S3Consumer似乎有一个'OnCompletion' callback,它会在消费后移除一个对象。只有在使用RouteBuilder方法时才会调用回调。

我希望两种方法的工作方式相似,但很明显我错过了一些东西。是否有可能采取“反应式”方法。消费对象后删除它们?

编辑:我使用的是Camel 2.15.2。

1 个答案:

答案 0 :(得分:2)

啊,是的,感谢您发现这一点。这是camel-rx中的一个错误,我已经记录了一张票来解决这个问题:https://issues.apache.org/jira/browse/CAMEL-8747

使用camel-rx时未启用UoW。