使用弹簧批处理在两台不同机器上进行文件处

nee*_*708 10 java oracle spring-batch

我的文件处理方案是,

 read input file -> process -> generated output file
Run Code Online (Sandbox Code Playgroud)

但我必须连接到一个存储区域的两个物理上不同的机器,我接收所有输入文件和一个数据库服务器.这些机器上运行两个应用程序服务器(每个服务器上1个).

在此输入图像描述

那么如何使用spring批处理并行处理这两个应用程序服务器上的输入文件呢?我的意思是如果有10个文件,服务器1(P1)上的5个和(P2)上的5个,可以这样做吗?

小智 -1

有一个非常简单的方法可以做到这一点。如果我得到正确的结果,您将每个文件放入数据库(有关它的一些信息),然后删除以创建新的输出。您可以对其进行 Lock(),在读取文件之前请检查

  for(File file : fileList.getFiles())
    try{
      (getting file + process it)
       }
Run Code Online (Sandbox Code Playgroud)

并在进行中

     file.lock();
     try {
         ...
     } finally {
         file.unlock();
     }
Run Code Online (Sandbox Code Playgroud)

这是有关Lock 的一些信息。