Spring integration 使用spring poller在server1或server2中均未发生文件锁定

Spring integration 使用spring poller在server1或server2中均未发生文件锁定,spring-integration,Spring Integration,我已经在我的应用程序中实现了spring轮询器。我的应用程序在两台服务器上运行。我将txt/pdf/xlsx文件放在入站文件夹中。两台服务器指向相同的入站文件夹。一旦我放置了多个文件,比如10-15个文件,两台服务器(都是JVM)都在尝试拾取同一个文件,当另一台服务器尝试相同的文件并抛出FileNotFoundException时,一台服务器处理该文件并将该文件从入站移动到inprocess& 有没有办法锁定该文件,使其他服务器无法读取同一文件?(或)是否有其他解决方案来解决此问题 提前感谢。可

我已经在我的应用程序中实现了spring轮询器。我的应用程序在两台服务器上运行。我将txt/pdf/xlsx文件放在入站文件夹中。两台服务器指向相同的入站文件夹。一旦我放置了多个文件,比如10-15个文件,两台服务器(都是JVM)都在尝试拾取同一个文件,当另一台服务器尝试相同的文件并抛出FileNotFoundException时,一台服务器处理该文件并将该文件从入站移动到inprocess&

有没有办法锁定该文件,使其他服务器无法读取同一文件?(或)是否有其他解决方案来解决此问题

提前感谢。

可以随
子元素一起提供
。见:

当多个进程从同一目录读取时,最好锁定文件,以防止同时拾取它们。为此,您可以使用
FileLocker
。有一个现成的基于
java.nio
的实现,但是也可以实现您自己的锁定方案。nio锁定器可以按如下方式注入



Hi@Artem Bilan尝试了上述场景。我得到以下异常:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:URL[vfs:/content/Example.war/WEB-INF/classes/beanExample.xml]的xml文档中的第27行无效;嵌套异常为org.xml.sax.saxpasseeption;看起来您错误地使用了XML,并且没有足够或不正确的scheme declarationsHi@Artem Bilan-我厌倦了UISS文件锁定,但我得到了IOEXCEPTION:进程无法访问该文件,因为另一个进程已锁定了该文件的一部分。请提供一个带有文件锁定的示例,其中包括XML文件中的入站通道适配器、出站通道适配器、集成回复通道、集成错误通道和服务激活器。提前谢谢。好吧,我只能分享这个:。
<int-file:inbound-channel-adapter id="filesIn"
    directory="file:${input.directory}" prevent-duplicates="true">
    <int-file:nio-locker/>
</int-file:inbound-channel-adapter>