Использование while l oop для повторного запуска нестабильного процесса - PullRequest
0 голосов
/ 26 марта 2020

Я использую оболочку Python с subprocess.run вокруг несколько нестабильного специализированного программного обеспечения для управления потоками / автоматизации. Поскольку программное обеспечение не очень стабильно, я хочу сделать оболочку устойчивой к различным программным сбоям.

Сейчас, чтобы вызвать программное обеспечение, я использую:

While True:
    try:
        subprocess.run("...foo.exe", check=True)
        break
    except subprocess.CalledProcessError:
        pass

Это автоматически продолжает пытаться запустить программный процесс, пока он не заработает, повторив попытку в случае взлома sh. Кажется, отлично справляется со своей задачей.

Тем не менее, следующий шаг включает использование выходных данных из прогона foo.exe, а другой режим частых сбоев состоит в том, что программное обеспечение успешно работает, но не выдает результат, который должен , Я бы хотел, чтобы программа-оболочка продолжала пытаться запускать программное обеспечение, повторять попытки в случае сбоя, а также повторно запускать, если вывод не соответствует ожидаемому.

Какой лучший способ сделать это

...