Добрый день.
Имеется программка, написана на Python 3.4.4 с использованием PyQt 4.11.4, которая парсит сайт каждые 10 минут. При запуске программы проверяется подключение к сайту check_connect(): если доступ есть, то status_connect = 1 и запускается поток. Каждые 10 минут также происходит проверка подключения к сайту. Проблема в том, что, если сайт через некоторое время станет недоступным и сработает функция get_docs(sc), то программа просто вылетит. Я так понял это происходит по той причине, что поток продолжает работать и нужно его остановить или завершить. Я пробовал в исключения TimeoutError и ConnectionError добавлять check_docs.exit(). Может быть причина совсем не в потоке. Посоветуйте, пожалуйста, что можно сделать в таком случае?
def check_connect():
global status_connect
try:
UTM_connect = HTTPConnection("test.ru")
UTM_connect.request("GET", "/")
UTM_connect.close()
except TimeoutError:
status_connect = 0
except ConnectionError:
status_connect = 0
else:
status_connect = 1
def get_docs(sc):
check_connect()
if status_connect == 1:
'''
парсинг сайта
'''
s.enter(600, 1, get_docs, (sc,))
class check_docs_cl(QtCore.QThread):
def __init__(self, parent = None):
QtCore.QThread.__init__(self, parent)
def run(self):
global s
s = sched.scheduler(time.time, time.sleep)
s.enter(10, 1, get_docs, (s,))
s.run()
class main_cl(QtGui.QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi("main.ui", self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
main_window = main_cl()
check_docs = check_docs_cl()
check_connect()
if status_connect == 1:
check_docs.start()
sys.exit(app.exec_())