Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich verhindern, dass Python-Funktionen aufgrund einer Zeitüberschreitung auf unbestimmte Zeit angehalten werden?
Timeout bei Funktionsaufrufen
Wenn Sie eine Funktion in Python aufrufen, die die Ausführung des Skripts möglicherweise auf unbestimmte Zeit anhält, muss ein Mechanismus dafür eingerichtet werden es verhindern. Die Lösung besteht darin, einen Timeout-Schwellenwert festzulegen, nach dem das Skript eingreift und die Funktion beendet.
Verwendung des Signalpakets
Für UNIX-basierte Systeme das Signalpaket bietet eine robuste Lösung. So verwenden Sie es:
Hier ist ein anschauliches Beispiel:
import signal # Handler function def handler(signum, frame): print("Timeout reached!") raise Exception("Timeout exception") # Function that may stall indefinitely def loop_forever(): while True: print("Looping") # Pause execution for 1 second time.sleep(1) # Set timeout to 5 seconds signal.alarm(5) signal.signal(signal.SIGALRM, handler) try: loop_forever() except Exception as exc: print("Exception:", exc)
Wenn die Funktion loop_forever() nicht innerhalb von 5 Sekunden abgeschlossen werden kann, wird die Handler-Funktion ausgeführt aufgerufen, wodurch die Timeout-Ausnahme ausgelöst und der Prozess beendet wird.
Das obige ist der detaillierte Inhalt vonWie kann ich verhindern, dass Python-Funktionen aufgrund einer Zeitüberschreitung auf unbestimmte Zeit angehalten werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!