Ich muss eine Funktion mehrmals auf verschiedenen Eingaben anwenden. Manchmal dauert die Ausführung der Funktion Stunden. Ich will nicht, dass es länger als 10 Sekunden dauert. Ich habe die Methode in einem früheren Post gefunden (How to limit execution time of a function call in Python). Ich kann es benutzen, aber sobald es fertig ist, stirbt mein Kernel (unerwartet). Sie finden unten ein Beispiel.Begrenzung der Ausführungszeit eines Funktionsaufrufs in Python tötet meinen Kernel
Hat jemand dieses Problem/weiß warum es passiert?
Fyk: Ich benutze Spinne (Python 2.7.11 64bits, Qt 4.8.7, PyQt4 (API v2) 4.11.4 auf Darwin)
import signal
import time
def signal_handler(signum, frame):
raise Exception("Timed out!")
for i in range(10):
signal.signal(signal.SIGALRM, signal_handler)
signal.alarm(10) # Ten seconds
try:
time.sleep(0.2) # The function I want to apply
print("Ok it works")
except Exception, msg:
print "Timed out!"
Tks für Ihre Antwort. Ich wusste nicht, dass ich mein Signal schließen musste. Alarm! Ich möchte jedoch den Alarm innerhalb der Schleife. Aber wenn ich es schließe, funktioniert es! –