【问题标题】:What is Apache Camel's File "camelLock"?什么是 Apache Camel 的文件“camelLock”?
【发布时间】:2014-02-24 12:35:28
【问题描述】:

每当我从 file URI 启动 Camel 路由时,我都会看到 Camel 在文件上获得“锁定”。例如,如果文件名为myinput.xml,Camel 会在其上创建一个“锁定文件”,位于同一目录中,名为myinput.xml.camelLock

  1. 这是什么?为什么 Camel 使用它?
  2. Camel 何时“释放”锁定文件(删除)?
  3. 最重要的是,有没有办法将文件 URI 配置为根本不锁定(如果是,如何)?

【问题讨论】:

  • 对于因缺乏研究而想对此投反对票的任何人,请给File2一个可靠的阅读。您会看到 一些 文档围绕 readLock 的概念,但它实际上并没有回答我的问题!!!
  • readLock=markerFile 是使用标记文件的默认设置,例如 .camelLock。

标签: java file-io apache-camel filelock


【解决方案1】:

希望这对你有帮助,我的朋友

readLocks 被消费者使用,仅在文件具有独占读锁时轮询文件(即文件不在进行中或正在写入)。 Camel 将等到授予文件锁之后,Camel 创建一个标记文件,然后对其持有锁,因为 JDK IO API 无法始终确定文件当前是否正在被另一个进程使用,所以骆驼维护该锁。选项 readLockCheckInterval 可用于设置检查频率。此选项仅适用于从 Camel 2.8 开始的 FTP 组件。请注意,从 Camel 2.10.1 开始,可以启用 FTP 选项 fastExistsCheck 来加速这个 readLock 策略。

通知从 Camel 2.10 开始,读锁发生了变化,fileLock 和 rename 也将使用 markerFile,以确保不会拾取运行在另一个节点(例如集群)上的另一个 Camel 消费者可能正在处理的文件。这仅受文件组件支持(不支持 ftp 组件)。

【讨论】:

  • 谢谢@girishlalwani2010 (+1) - 你知道是否有可能:(1)配置骆驼完全锁定,或(2)强制骆驼释放锁?再次感谢!
  • @TotesMcGotes 尝试在你的 apache camel readLock=none 的配置中配置令牌
猜你喜欢
  • 2013-11-11
  • 2022-11-29
  • 2012-06-20
  • 2013-04-14
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 2014-02-11
  • 2015-07-28
相关资源
最近更新 更多