Я использую оболочку Python с subprocess.run
вокруг несколько нестабильного специализированного программного обеспечения для управления потоками / автоматизации. Поскольку программное обеспечение не очень стабильно, я хочу сделать оболочку устойчивой к различным программным сбоям.
Сейчас, чтобы вызвать программное обеспечение, я использую:
While True:
try:
subprocess.run("...foo.exe", check=True)
break
except subprocess.CalledProcessError:
pass
Это автоматически продолжает пытаться запустить программный процесс, пока он не заработает, повторив попытку в случае взлома sh. Кажется, отлично справляется со своей задачей.
Тем не менее, следующий шаг включает использование выходных данных из прогона foo.exe
, а другой режим частых сбоев состоит в том, что программное обеспечение успешно работает, но не выдает результат, который должен , Я бы хотел, чтобы программа-оболочка продолжала пытаться запускать программное обеспечение, повторять попытки в случае сбоя, а также повторно запускать, если вывод не соответствует ожидаемому.
Какой лучший способ сделать это