У меня есть некоторый код, который выполняет итерацию по списку, вызывая внешнюю программу каждую итерацию, используя subprocess.run
для ввода, настроенного из списка, и выполняя какие-то действия с выходом.
Прямо сейчас у меня есть что-то вроде:
for item in list:
do_some_stuff(item)
input = customise_program_input(item)
while True:
try:
subprocess.run("... foo.exe on input")
pass
except subprocess.CalledProcessError:
continue # This is here to run foo.exe again if it randomly fails, since it's not very stable
try:
do_more_stuff(output of foo)
break
except FileNotFoundError:
pass # Similar to above, in case foo.exe randomly doesn't generate necessary output, try again
continue_with_workflow()
Я бы хотел распараллелить этот процесс, поскольку каждый запуск программы не зависит от других. (Мне также понадобится завершить все из них, прежде чем продолжить основной рабочий процесс.) Какой лучший способ сделать это?