Ich versuche, Timeout für eine bestimmte Funktion zu implementieren. Ich habe viele der Fragen in SE geprüft und konnte keine Lösung finden, die zu meinem Problem passt, denn
Ich habe ein bereits entwickeltes benutzerdefiniertes Modul (zB MyModule) für bestimmte Aufgaben entwickelt, und darin sind Funktionen definiert. Eine der Funktionen (zB MyFunc) neigt aufgrund externer Faktoren dazu, für immer zu laufen, und ich möchte einfach nicht, dass das Python-Skript hängt.
Ich plane, eine Zeitüberschreitungsfunktion hinzuzufügen, wie unten unter Pseudocode
angegeben %Vor%Aber ich bin nicht sicher, welches Modul verwendet werden kann, um dies auf Python zu erreichen. Beachten Sie, dass ich ein Neuling bin und alle Skripte, die ich geschrieben habe, direkt auf SE Answers oder Python-Dokumentation basieren.
Ich denke, ein guter Weg, dies zu erreichen, besteht darin, einen Decorator zu erstellen und die Thread.join (timeout) -Methode zu verwenden. Denken Sie daran, dass es keinen guten Weg gibt, den Thread zu beenden, so dass er mehr oder weniger im Hintergrund läuft, solange Ihr Programm läuft.
Erstellen Sie zuerst einen Dekorateur wie folgt:
%Vor%dann, tun Sie etwas wie folgt:
%Vor%Sie können diesen Dekorator überall dort verwenden, wo Sie etwas benötigen:
%Vor%Tags und Links python timeout python-2.7