Используйте try
и except
, чтобы перехватить исключение, а затем time.sleep
, чтобы ваш скрипт Python спал в течение требуемого промежутка времени. Затем вы можете поместить все в бесконечный цикл while
и break
из него, как только все закончится.
while True:
try:
# put everything here which might produce exception
pass
# if this point is reached everything worked fine, so exit loop
break
except:
time.sleep(10*60)
Вы можете запустить следующий пример, чтобы увидеть общую идею:
import random
import time
print("Before loop")
while True:
try:
print("Try to execute commands")
# your commands here
if random.random() > 0.3:
print("Randomly simulate timeout")
raise Exception("Timeout")
print("Everything done")
break
except:
print("Timeout: sleep for 2 seconds and try again")
time.sleep(2)
print("After loop")
Вместо реальных команд мы случайным образом решаем создать исключение для имитации времени ожидания. Результат может выглядеть примерно так:
Before loop
Try to execute commands
Randomly simulate timeout
Timeout: sleep for 2 seconds and try again
Try to execute commands
Randomly simulate timeout
Timeout: sleep for 2 seconds and try again
Try to execute commands
Randomly simulate timeout
Timeout: sleep for 2 seconds and try again
Try to execute commands
Everything done
After loop