В моей программе я использую модуль запросов для вызова URL. Если в случае ошибки сети или любых других проблем, я обрабатываю ошибку. В блоке исключений ниже, используя таймер, я снова вызываю службу (url) через указанный интервал времени c. Я пытался запустить программу без сети, ответ на запросы:
"HTTPSConnectionPool (host = 'com', port = 443): максимальное количество повторов превышено с помощью url: / api // issubmitted / 2020 / 3 / (вызвано NewConnectionError (': не удалось установить sh новое соединение: [Errno 11004] getaddrinfo fail',))) "
Но программе не удается вызвать таймер. Он просто завершается, процесс завершается с кодом выхода 1073741845.
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt, QTimer
import sys
class ShowScreen():
def call_api(self):
resp1 = CallServices.is_submitted(self)
if resp1['isLocked'] == False:
Main()
class CallServices():
def is_submitted(self):
url = '%s/issubmitted/%s/%d/%s' % (url_sub, year, month, username)
try:
response = requests.get(url)
except (requests.exceptions.RequestException,
requests.exceptions.ConnectionError) as e:
print("error")
api_logger.debug('DEBUG- IsSubmitted Response: %s', e)
timer = QTimer(QApplication.instance())
interval = 1000
timer.setInterval(interval)
timer.timeout.connect(lambda: ShowScreen.call_api())
timer.start()
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
class MainClass():
def start_timer(self):
app = QApplication(sys.argv)
Main()
sys.exit(app.exec_())
if __name__ == "__main__":
m = MainClass()
m.start_timer()