我有一个包含2个节点和共享文件系统的集群。每个运行的节点都有一个定期运行的java进程。该进程访问文件系统并处理一些文件,并在处理后删除这些文件 这里的问题是只有一个计划进程应该访问文件。如果第一个进程运行,另一个进程应该跳过执行。
.lock
。当第一个进程开始执行时,它应该移动文件
进入另一个文件夹并开始处理文件。当另一个
预定流程开始执行它首先检查.lock
文件存在,如果不是,则进程跳过执行。
当第一个进程完成执行时,它会移动.lock
归档到其原始文件夹。我正在使用Files.move()
使用ATOMIC_MOVE
选项的方法,但在一段时间后我
出乎意料的行为。Hazelcast
这样的分布式锁。我做了一些测试,似乎没问题,但这个解决方案对于这么简单的任务来说似乎有点复杂。 我的问题是:针对此问题是否还有其他更智能/更简单的解决方案,或者我唯一的选择是使用Hazelcast
?你会如何解决这个问题?