文件系统事件并不总是在 SMB 挂载文件夹上触发

问题描述

我正在使用 Spring-Integration (File) 5.4.6 来监听目录的变化。作为观察者,我正在使用 setUseWatchServiceFileReadingMessageSource

如果有新文件可用,它将被提取和处理。该服务在具有大量文件的本地文件系统上运行良好。但是,如果该服务正在侦听网络驱动器,则该驱动器是通过 SMB 安装的,并非所有文件都被拾取。没有错误消息......我假设文件系统事件并不总是被触发。

有人可以确认吗?我做了很多测试……在本地文件系统上一切正常……问题只发生在网络驱动器上。该服务在 Windows 10 虚拟机中运行。

解决方法

我不知道网络安装驱动器是如何工作的,但这里是 SMB 协议的 Spring Integration 扩展:https://github.com/spring-projects/spring-integration-extensions/tree/main/spring-integration-smb。可能它会帮助您以某种方式实施您的解决方案,而无需依赖通过网络maunting 进行的文件系统模拟。