Lancer une fonction toutes les X minutes - Python

Je suis en utilisant Python et PyGTK. Je suis intéressé par l'exécution d'une fonction particulière, qui récupère les données à partir d'un port série et l'enregistre, toutes les quelques minutes.

Actuellement, je suis en utilisant la fonction sleep() de la fonction dans la bibliothèque. Afin d'être en mesure de faire le traitement, j'ai mon système mis en place comme ceci:

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)

Cette configuration me permet d'avoir 5 minutes d'intervalle entre la lecture des données à partir du port série. Mon problème est que je voudrais être en mesure d'avoir mon readserial() la fonction pause de tout ce qui se passe toutes les 5 minutes et être en mesure de faire des choses tout le temps au lieu d'utiliser le temps.sleep() de la fonction.

Des suggestions sur la façon de résoudre ce problème? Le Multithreading? Les interruptions? Veuillez garder à l'esprit que je suis en utilisant python.

Grâce.

source d'informationauteur mouche