【发布时间】:2012-12-04 07:58:03
【问题描述】:
我们有一个 spring 集成应用程序,它在多个节点的集群中运行。 NFS 驱动器安装在所有节点上,并且可供所有节点读取。
在 NFS 上,有一个文件夹正在被所有节点的 file:inbound-channel-adapter 监视,轮询间隔为 5 秒。
问题是 1) 一个节点不应该拾取已经被其他节点拾取的文件
2) 如果文件被一个节点上的线程拾取,则在轮询间隔后运行的第二个线程不应该拾取它-我为此设置了 AcceptOnceFileListFilter ,但想知道是否有更好的方法.
我们已经研究过的选项之一:
1) 在数据库中创建一个具有唯一文件名的记录,并且每个其他节点在开始处理之前检查同一个数据库
还得看看 NIOLocker - 但需要一些关于它的可靠性和在这种情况下可能的选项的输入。
【问题讨论】:
标签: spring-integration filelock