Я запускаю бесконечный скрипт python в циклах и перехватываю все исключения, чтобы скрипт не остановил выполнение.
Функция self.pupdate () извлекает данные с сервера sql и показывает их на терминале, если по какой-то причине может случиться так, что он не получит данные или что-то еще, но не остановится.вот мой код.
class live(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
while True:
try:
self.collect()
except Exception as Conerr:
print("run :",Conerr)
pass
def collect(self):
try:
while True:
self.rep()
pass
except Exception as mai:
print("Collect:", mai)
def rep(self):
try:
self.pick_update()
except Exception as F:
print("REP:",F)
if __name__ == '__main__':
fun = live()
fun.start()
скрипт не замирает, он прекращает выполнение и застревает где-то
edit 1:
чтобы преодолеть это, я попытался threading.Timer
как следующий код,
def runs():
threading.Timer(30.0, runs).start()
try:
for i in range(1,10):
pick_update()
except Exception as yt:
print("datafetch: ", yt)
, но проблема в том, что, если весь цикл не завершен, он запустит новый поток, и предыдущий также будет запущен, остановится ли этот первый поток, когда его цикл завершится?или оба потока будут продолжаться и каждый раз начинать новый?