Java Запуск process.getoutputstream одновременно в остальных API - PullRequest
0 голосов
/ 30 января 2020

У меня есть внешний исполняемый инструмент командной строки, который мне нужен для запуска, передачи ему команд и получения вывода в Java. Я создал класс, который создает Process с использованием processbuilder, а затем я использую process.getoutputstream для записи и process.getinputstream для чтения и сохранения значения в массиве. Теперь я продолжил и создал контроллер загрузочных запросов Spring, который принимает requestparam и передает значение в качестве входных данных методу в классе, который создает процесс, упомянутый выше. Входной поток процесса (вывод выполнения команды) затем записывается в массив данных, который затем возвращается как json от остального контроллера. Все отлично работает для одного пользователя. Когда более чем один пользователь вызывает конечную точку API одновременно (передавая свои собственные значения параметров запроса), выходные данные json имеют противоречивые результаты (т. Е. Второй запрос может иметь первые значения запроса и наоборот). Как полностью изолировать рабочий процесс процесса -> создание, выходной поток и входной поток для каждого запроса и избежать их смешивания?

...