Wie funktioniert die Zeitüberschreitung in Python? Die Zeitüberschreitung beträgt weniger als eine Sekunde

Spezifikation des Problems:

Ich durchsuche eine wirklich große Anzahl von Zeilen einer Protokolldatei und verteile diese Zeilen auf Gruppen, um reguläre Ausdrücke (RegExses) zu erhalten, die ich mit der gespeichert habere.match() Funktion. Leider sind einige meiner RegExses zu kompliziert und Python schafft es manchmal, die Hölle hinter sich zu lassen. Aus diesem Grund muss ich es mit einer Art Timeout schützen.

Probleme:re.matchIch benutze, ist Pythons Funktion und wie ich hier auf StackOverflow herausgefunden habe(Es tut mir wirklich leid, ich kann den Link jetzt nicht finden :-(). Es ist sehr schwierig, den Thread mit der Ausführung der Python-Bibliothek zu unterbrechen. Aus diesem Grund sind Threads aus dem Spiel.Weil die Bewertung vonre.match Die Ausführung der Funktion dauert relativ kurz und ich möchte mit dieser Funktion eine große Anzahl von Zeilen analysieren. Ich benötige eine Timeout-Funktion, deren Ausführung nicht zu lange dauert(Dadurch sind Threads noch weniger geeignet. Die Initialisierung eines neuen Threads dauert sehr lange.) undkann auf weniger als eine Sekunde eingestellt werden.
Antworten aus diesen Gründen hier -Timeout bei einem Funktionsaufruf und hier -Timeout-Funktion, wenn der Vorgang zu lange dauert mit Dekorateur (Alarm - 1sec und mehr) sind vom Tisch.

Ich habe heute Morgen nach einer Lösung für diese Frage gesucht, aber keine zufriedenstellende Antwort gefunden.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage