我有一个Spring批处理应用程序,它部署在多个服务器(多个JVM)上。所有实例都监听输入文件的公共共享路径。
如何确保保存在共享位置的输入文件只会被一个实例使用?
答案 0 :(得分:-2)
可以使用db RUNNING,NOT_RUNNING中的枚举状态来维护。当线程1开始处理文件时,它将获取调度程序状态实体并检查调度程序状态。如果它没有运行,则将状态更新为RUNNING并执行该文件夹,完成后将其标记为NOT_RUNNING。应该在单一环境和同步方式下执行此代码。可以使用所有批次的RMI调用来调用它以获取该位置的锁定。