1

我的 DSL 开始是这样的:

from("aws-s3://" + s3_bucket_name + "?amazonS3Client=#amazonS3Client&deleteAfterRead=false&fileName=myfile.csv")

在此之后,我将每一行转换为 JSON 文件并转储到本地目录中。

问题是它继续这样做,就像陷入无限循环一样。

知道我如何只处理一次文件然后停止吗?

4

2 回答 2

1

您可以阅读有关如何从路线停止路线的常见问题解答:http: //camel.apache.org/how-can-i-stop-a-route-from-a-route.html

或者,您只使用 aConsumerTemplate轮询 s3file 一次,而不是使用路由。

于 2017-11-26T07:50:17.550 回答
0

您可以使用幂等消费者

from("aws-s3://" + s3_bucket_name + "?amazonS3Client=#amazonS3Client&deleteAfterRead=false&fileName=myfile.csv")
.idempotentConsumer(header("CamelAwsS3Key"), idempotentRepository)

您可以根据上面链接中提到的需要提供 idempotentRepository 的实现。

于 2017-11-27T18:17:16.737 回答