什么是Apache Camel的文件“camelLock”?

时间:2014-01-31 17:34:50

标签: java file-io apache-camel filelock

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

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

1 个答案:

答案 0 :(得分:4)

希望这可以帮助你的朋友

消费者使用

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组件)支持。