Apache Camel的文件"camelLock"是什么?

8
每当我从一个file URI开始Camel路由时,我发现Camel会对该文件进行“锁定”。例如,如果文件名为myinput.xml,则Camel会在同一目录中创建一个名为myinput.xml.camelLock的“锁文件”。
问题如下:
  1. 这是什么,为什么Camel要使用它?
  2. Camel何时“释放”锁定文件(删除它)?
  3. 最重要的是,是否有一种方式来配置文件URI以完全不锁定文件(如果有,如何)?

1
任何想因为缺乏研究而对此进行负面评价的人,请认真阅读File2。你会看到一些关于readLock概念的文档,但是它们并没有回答我的问题!!! - AdjustingForInflation
2
readLock=markerFile 是默认选项,它使用标记文件,例如 .camelLock。 - Claus Ibsen
1个回答

8

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

readLocks用于消费者,在文件具有独占读锁时(即文件不在进行中或被写入),仅轮询文件。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)完全不锁定配置Camel,还是(2)强制Camel释放锁定?再次感谢! - AdjustingForInflation
@TotesMcGotes 尝试在你的 Apache Camel 配置中配置令牌,readLock=none。 - Girish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接