繁体   English   中英

Apache骆驼,无法第二次从FTP获取文件

[英]Apache camel, cant get the file from FTP second time

我的表情是这样的:

sftp://hostname/path?username=username&password=password&fileName=fileName.txt&connectTimeout=10000&soTimeout=40000&timeout=40000&stepwise=false&maximumReconnectAttempts=4&autoCreate=false&strictHostKeyChecking=no&preferredAuthentications=publickey,password&disconnect=true&stepwise=false&throwExceptionOnConnectFailed=true&consumer.bridgeErrorHandler=true

我在这里使用这个表达式:

  from(GET_FILE_FROM_SFTP)
            .log(LoggingLevel.INFO, DOCUMENT_RECONCILIATION_ROUTE, "Getting the file from SFTP")
            .pollEnrich()
            .simple("${exchangeProperty.sftpExpression}")
            .timeout(20000L)
            .to(SAVE_RECEIVED_IDS)
            .end();

在第一次执行时,它可以获取文件。 但是第二次当我再次触发时,它会在放置这样的日志时等待:

Known host file not configured, using user known host file: C:\Users\caner/.ssh/known_hosts

然后走下一条路线,但因为文件是空的,所以不能走得更远。

为什么不能第二次取文件? 我删除了文件并再次放入 ft​​p 但仍然无法获取它。

当我将该表达式中的文件名作为同一目录中的另一个文件名并尝试时,它可以获取文件。

第一个文件是否有任何无法再次获得的锁定?

设置选项noop=true以在完成后禁用文件移动。 您还需要idempotent=false来禁用idempotency

请参阅SFTP 组件

noop

如果为 true,则不会以任何方式移动或删除文件。 此选项适用于只读数据或 ETL 类型要求。 如果 noop=true,Camel 也会设置 idempotent=true,以避免反复使用相同的文件。

idemponent

选择使用幂等消费者 EIP 模式让 Camel 跳过已处理的文件。 默认情况下,将使用基于内存的 LRUCache,其中包含 1000 个条目。 如果 noop=true 则幂等也将被启用以避免一遍又一遍地使用相同的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM