Сценарий Python останавливает выполнение не мертвым в нерабочее время - PullRequest
0 голосов
/ 29 ноября 2018

Я запускаю бесконечный скрипт 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)

, но проблема в том, что, если весь цикл не завершен, он запустит новый поток, и предыдущий также будет запущен, остановится ли этот первый поток, когда его цикл завершится?или оба потока будут продолжаться и каждый раз начинать новый?

...