Сценарий :
- В моем приложении есть 3 процесса, которые копируют документы на общий диск в соответствующие папки.
Как только любой документ копируется на общий диск (любым процессом), код наблюдателя каталога (Java) забирает документ и вызывает скрипт 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();
В настоящее время мой код ожидает завершения выполнения кода Python в документе. Только после этого он подберет следующий документ. Python-код занимает 30 секунд, чтобы завершить .
- После обработки документа документ перемещается из текущей папки в архив ИЛИ папку с ошибками.
- Ниже приведен снимок экрана сценария:

В чем проблема?
- Мой код обрабатывает документы последовательно, и мне нужно обрабатывать документ параллельно.
- Поскольку код Python занимает около 30 секунд, некоторые из событий, создаваемых наблюдателем каталога, также теряются.
- Если в течение короткого промежутка времени поступает около 400 документов, обработка документов прекращается.
Что я ищу?
- Проектное решение для параллельной обработки документов.
- В случае любого сценария сбоя при обработке документов, ожидающие документы должны обрабатываться автоматически.
- Я пробовал также подпружиненную загрузку по расписанию, но все еще документыобрабатываются только в последовательном порядке.
- Можно ли параллельно вызывать код Python в качестве фонового процесса.
Извините за длинный вопрос, но я застрял в этом в течение многих дней и уже посмотрел много похожих вопросов. ,Спасибо!