【问题标题】:How to read S3 file only once in Apache Camel如何在 Apache Camel 中只读取 S3 文件一次
【发布时间】:2018-05-09 14:36:21
【问题描述】:

我的 DSL 开始是这样的:

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

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

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

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

【问题讨论】:

    标签: amazon-s3 apache-camel apache-camel-aws


    【解决方案1】:

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

    或者使用ConsumerTemplate 代替路由,只轮询 s3file 一次。

    【讨论】:

    • 嗨@claus:是否可以提供任何示例/参考链接来解释使用ConsumerTemplate 来实现此目的?
    【解决方案2】:

    你可以使用Idempotent Consumer

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-26
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多