Как ждать, пока предыдущий шаг в трубах не будет завершен? - PullRequest
0 голосов
/ 03 октября 2019

Чтобы ускорить процесс, я создал каналы для обработки данных stdin и stdout вместо сохранения данных в файлы на каждом шаге. Моя команда exec выглядит следующим образом:

((cat testset.tsv | python3 transform_input.py --arg1 lol) | compiled_tool_stdin -argument_flags) | python3 merge_result.py --arg1 lol

Итак, здесь у нас есть 2 python скриптов, огромный инструмент в java+bash и обычный cat. Проблема в том, что вся часть до последнего шага (merge_result.py) работает нормально, но скрипт получает данные порциями. Есть ли способ подождать, пока все данные из предыдущей части будут готовы, а затем запустить последнюю часть каналов? Если я сохраню данные в файл, мне все равно нужно будет убедиться, что все данные уже сохранены, есть ли шанс проверить, что файл уже заполнен?

...