【发布时间】:2020-02-15 18:29:50
【问题描述】:
场景:
- 在我的应用程序中,有 3 个进程正在将共享驱动器上的文档复制到各自文件夹中。
-
一旦任何文档(通过任何进程)复制到共享驱动器上,目录观察程序 (Java) 代码就会获取该文档并使用“进程”调用 Python 脚本并对文档进行一些处理。代码sn-p如下:
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(); 目前我的代码等待文档上的 python 代码执行完成。只有在那之后它才会拿起下一个文件。 Python 代码需要 30 秒才能完成。
- 处理文档后,文档从当前文件夹移动到存档或错误文件夹。
- 请在下面找到该场景的屏幕截图:
有什么问题?
- 我的代码正在按顺序处理文档,我需要并行处理文档。
- 由于 Python 代码大约需要 30 秒,因此目录观察程序创建的一些事件也会丢失。
- 如果在短时间内收到大约 400 个文档,文档处理将停止。
我在寻找什么?
- 设计用于并行处理文档的解决方案。
- 如果文档处理出现任何故障情况,必须自动处理待处理的文档。
- 我也尝试了 spring boot schedular,但仍然只能按顺序处理文档。
- 是否可以将 Python 代码作为后台进程并行调用。
很抱歉这个问题太长了,但我已经被困在这个问题上很多天了,并且已经看过很多类似的问题。 谢谢!
【问题讨论】:
标签: java python spring-boot document