Rekursiv oder einfache Schleife?
Verfasst: Montag 29. November 2021, 07:57
Hallo Community,
ich habe dieses kurze Skript geschrieben:
Es prüft zyklisch ob die Internetverbindung steht und startet das Program Jitsi wenn das der Fall ist.
Das funktioniert einwandfrei. Das Exceptionhandling ist sicher noch verbesserungsfähig aber die Kernfrage ist: Es arbeitet rekursiv - wenn es mal über längere Zeit läuft, kann es dann zum Stackoverflow kommen?
Sollte ich besser eine einfache Schleife verwenden?
Beste Grüße - Ulrich
ich habe dieses kurze Skript geschrieben:
Code: Alles auswählen
import sys
import socket
import os
import time
import subprocess
try:
jitsiPath = r'C:\Program Files\Sonstiges\Jitsi\Jitsi.exe'
sipUrl = r'sip.provider.de'
def is_connected():
try:
# try to connect the sip host:
sock = socket.create_connection((sipUrl, 5060))
sock.close()
# host is online, start jitsi now:
subprocess.call([jitsiPath])
return True
except:
# wait 10 seconds:
time.sleep(10)
# test the connection again:
is_connected()
return False
is_connected()
except:
print("Error at line", sys.exc_info()[2].tb_lineno, sys.exc_info()[0])
Das funktioniert einwandfrei. Das Exceptionhandling ist sicher noch verbesserungsfähig aber die Kernfrage ist: Es arbeitet rekursiv - wenn es mal über längere Zeit läuft, kann es dann zum Stackoverflow kommen?
Sollte ich besser eine einfache Schleife verwenden?
Beste Grüße - Ulrich