我正在遵循以下骆驼路线,该路线正试图从S3存储桶中读取文件列表:
from("direct:my-route").
.from("aws-s3://my.bucket?useIAMCredentials=true&useAwsKMS=true&awsKMSKeyId=my-key-id&deleteAfterRead=false&operation=listObjects&includeBody=false&prefix=test1/test.xml")
.log(" File detected: ${header.CamelAwsS3Key}")
.end();
但是,每分钟运行一次的外部调度程序正在调用此路由。看起来Camel-S3组件的默认行为是使用调度程序运行,但这导致相同文件一次又一次地被处理。
我尝试使用startScheduler = false来关闭Camel-S3调度程序,但是当外部调度程序启动并获得'$ {header.CamelAwsS3Key}'的空值时,这不会执行'aws-s3'部分。
是否可以在没有内部调度程序的情况下运行此组件?
使用的骆驼版本-2.22.0
aws的依赖项:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel.version}</version>
</dependency>
答案 0 :(得分:1)
没有2 x来自,基本上不是两个独立的消费者。而是在调用另一个from时使用内容增强器(pollEnrich)从s3进行消费。
from
pollEnrich
log
阅读有关content richer和pollEnrich / rich的文档(特别是在民意测验超时的情况下)。 https://camel.apache.org/manual/latest/content-enricher.html