Führen Sie alle X Minuten eine Funktion aus - Python

Ich benutze Python und PyGTK. Ich möchte eine bestimmte Funktion ausführen, die Daten von einer seriellen Schnittstelle abruft und alle paar Minuten speichert.

Derzeit verwende ich die Funktion sleep () in der Zeitbibliothek. Um die Bearbeitung durchführen zu können, habe ich mein System folgendermaßen eingerichtet:

<code>import time
waittime = 300 # 5 minutes
while(1):
    time1 = time.time()
    readserial() # Read data from serial port
    processing() # Do stuff with serial data, including dumping it to a file
    time2 = time.time()
    processingtime = time2 - time1
    sleeptime = waittime - processingtime
    time.sleep(sleeptime)
</code>

Dieses Setup ermöglicht mir 5-Minuten-Intervalle zwischen dem Lesen von Daten von der seriellen Schnittstelle. Mein Problem ist, dass ich meine readserial () - Funktion alle 5 Minuten pausieren lassen möchte und die ganze Zeit Dinge tun kann, anstatt die time.sleep () - Funktion zu verwenden.

Irgendwelche Vorschläge zur Lösung dieses Problems? Multithreading? Unterbricht? Bitte denken Sie daran, dass ich Python verwende.

Vielen Dank.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage