2009-05-01 15 views
9

Ich habe überall nach einem guten Timeout-Skript gesucht, das einen Thread beenden kann, wenn er länger als X Sekunden aktiv war, aber alle Beispiele, die ich gesehen habe, haben Fehler, die nicht immer aufhören der Faden. Die Verwendung von thread.join (x) vereitelt den Zweck, dass es ein Thread ist.Python Timeout

Der einzige anständige Beispiel, das ich gefunden habe, ist Timeout on a function call und dass man nicht ohne seine Fehler ..

Wer einen besseren Weg wissen, dies zu tun?

+0

Die Python-Leute haben das absichtlich hart gemacht, weil es normalerweise eine schlechte Idee ist, etwas zu töten, das in den gemeinsamen Speicher schreiben könnte. Könnten Sie einen Prozess anstelle eines Threads verwenden? – Dave

+0

Nun, in diesem Fall ist es für ein mod_wsgi-Skript, also ist es eher eine Beendigung Sache. Sobald das Skript über das Zeitlimit hinaus ausgeführt wird, muss nur der gesamte Thread beendet und beendet werden. Daher ist die potentielle Beschädigung von gemeinsam genutztem Speicher kein so großes Problem. – Ian

+0

Laufen Sie im Daemon-Modus oder Embedded-Modus? – Dave

Antwort