即使数据存在,Camel readLockMinLength = 0也会创建一个0长度的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即使数据存在,Camel readLockMinLength = 0也会创建一个0长度的文件相关的知识,希望对你有一定的参考价值。

我尝试通过设置readLockMinLength=0来修复零长度文件。正在处理所有Good,零字节文件。

现在问题是我有非常大的文件(大约2 GB)。在我的目的地,我收到两个文件:

  1. 包含数据的实际文件
  2. 零字节的实际文件

From Route include = ..&delay = 20000&readLockCheckInterval = 20000&readLockTimeout = 60000&readLock = changed&readLockMinLength = 0&readLockLoggingLevel = OFF&delete = true“

我的文件名有时间戳。我不确定它为什么创建额外的零字节文件,但当我删除readLockMinLength = 0时。它永远不会创建零字节文件。

答案

您的轮询频率为20秒,读锁定的检查间隔相同,读锁定超时为60秒。

多个目录轮询是否可能相互干扰?

您是否尝试将delay提升到60秒以上,以便在当前轮询的任何读取锁定内容之后开始下一轮询?

编辑由于同一应用程序在4个节点上运行的新信息。

Camel docs有一个警告,其中解释了财产readLock

警告:大多数读锁策略不适合在群集模式下使用。也就是说,您不能让多个使用者尝试在同一目录中读取同一文件。在这种情况下,读锁定将无法可靠地运行。

在这种情况下,我们只运行一个实例并使用监视程序来监视进程。如果进程终止,看门狗会自动重启它。

以上是关于即使数据存在,Camel readLockMinLength = 0也会创建一个0长度的文件的主要内容,如果未能解决你的问题,请参考以下文章

AIsing Programming Contest 2020 E - Camel Train

我可以在同一Camel上下文中的Camel Routes之间共享本地数据吗?

Camel:使用 spring-boot 配置的数据源

Camel路由可以将数据发送到TCP客户端吗?

Spring Integration 与 Camel [关闭]

RabbitMQ - Apache Camel 读取消息如何处理失败的消息