spring boot API-文档处理和在文档上并行执行python脚本

问题描述 投票:1回答:1

场景

  1. 在我的应用程序中,有3个进程正在将文档复制到各自文件夹中的共享驱动器上。
  2. 一旦任何文档被复制到共享驱动器上(通过任何进程),目录观察器(Java)代码就会拾取该文档并使用“ Process”调用Python脚本,并对文档进行一些处理。代码段如下:

    Process pr = Runtime.getRuntime().exec(pythonCommand);
                // retrieve output from python script
                BufferedReader bfr = new BufferedReader(new InputStreamReader(pr.getInputStream()));
                String line = "";
                while ((line = bfr.readLine()) != null) {
                    // display each output line from python script
                    logger.info(line);
                }
                pr.waitFor();
    
  3. 目前,我的代码一直等到该文档上的python代码执行完成。只有在此之后,它才会拾取下一个文档。 Python代码需要30秒才能完成

  4. 处理文档后,文档从当前文件夹移动到存档或错误文件夹。
  5. 请在下面的场景屏幕截图中找到:enter image description here

什么问题?

  1. 我的代码正在按顺序处理文档,因此我需要并行处理文档。
  2. 由于Python代码大约需要30秒,因此目录观察程序创建的某些事件也将丢失。
  3. 如果在短时间内收到约400个文档,则文档处理将停止。

我在寻找什么?

  1. 并行处理文档的设计解决方案。
  2. 如果遇到任何失败的文档处理情况,则必须自动处理待处理的文档。
  3. 我也尝试过安排Spring Boot时间表,但是仍然只按顺序处理文档。
  4. 是否可以作为后台进程并行调用Python代码。

很长的问题,很抱歉,但是我在很多天都被这个问题困扰,已经看过很多类似的问题。谢谢!

java python spring-boot document
1个回答
0
投票

您可以在python here中尝试多处理模块

© www.soinside.com 2019 - 2024. All rights reserved.