我有一个由入站适配器轮询的文件。环境方面,我有多个节点轮询 NAS 位置上的单个文件(对所有人可见)并防止重复是真的。
令人惊讶的是,如果我重复放置一个文件,在服务器重新启动之前,没有一个节点会选择该文件。
假设 spring 集成用于将这些信息保存在 spring 上下文中,如果被一个节点遗漏,则应该由其他节点选择。
有人能解释一下这个标志或元数据在哪里维护吗?
我有一个由入站适配器轮询的文件。环境方面,我有多个节点轮询 NAS 位置上的单个文件(对所有人可见)并防止重复是真的。
令人惊讶的是,如果我重复放置一个文件,在服务器重新启动之前,没有一个节点会选择该文件。
假设 spring 集成用于将这些信息保存在 spring 上下文中,如果被一个节点遗漏,则应该由其他节点选择。
有人能解释一下这个标志或元数据在哪里维护吗?
请参阅文档。你需要一个FileSystemPersistentAcceptOnceFileListFilter
带有共享的MetadataStore
.
默认AcceptOnceFileListFilter
使用基于内存的,不考虑文件修改时间。
AcceptOnceFileListFilter 将其状态存储在内存中。如果您希望状态在系统重新启动后仍然存在,请考虑改用 FileSystemPersistentAcceptOnceFileListFilter。此过滤器将接受的文件名存储在 MetadataStore 实现中(第 9.5 节,“元数据存储”)。此过滤器匹配文件名和修改时间。