Ejecutar una función cada X minutos - Python

Estoy usando Python y PyGTK. Estoy interesado en ejecutar una función determinada, que obtiene datos de un puerto serie y los guarda, cada varios minutos.

Actualmente, estoy usando la función sleep () en la biblioteca de tiempos. Para poder hacer el procesamiento, tengo mi sistema configurado de esta manera:

<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>

Esta configuración me permite tener intervalos de 5 minutos entre la lectura de datos desde el puerto serie. Mi problema es que me gustaría poder hacer que mi función de lectura () se detenga cada 5 minutos y pueda hacer cosas todo el tiempo en lugar de usar la función time.sleep ().

¿Alguna sugerencia sobre cómo resolver este problema? Multihilo? Interrupciones? Por favor, tenga en cuenta que estoy usando python.

Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta