我的 DSL 开始是这样的:
from("aws-s3://" + s3_bucket_name + "?amazonS3Client=#amazonS3Client&deleteAfterRead=false&fileName=myfile.csv")
在此之后,我将每一行转换为 JSON 文件并转储到本地目录中。
问题是它继续这样做,就像陷入无限循环一样。
知道我如何只处理一次文件然后停止吗?
我的 DSL 开始是这样的:
from("aws-s3://" + s3_bucket_name + "?amazonS3Client=#amazonS3Client&deleteAfterRead=false&fileName=myfile.csv")
在此之后,我将每一行转换为 JSON 文件并转储到本地目录中。
问题是它继续这样做,就像陷入无限循环一样。
知道我如何只处理一次文件然后停止吗?
您可以阅读有关如何从路线停止路线的常见问题解答:http: //camel.apache.org/how-can-i-stop-a-route-from-a-route.html
或者,您只使用 aConsumerTemplate
轮询 s3file 一次,而不是使用路由。
您可以使用幂等消费者
from("aws-s3://" + s3_bucket_name + "?amazonS3Client=#amazonS3Client&deleteAfterRead=false&fileName=myfile.csv")
.idempotentConsumer(header("CamelAwsS3Key"), idempotentRepository)
您可以根据上面链接中提到的需要提供 idempotentRepository 的实现。