Executar uma função a cada X minutos - Python

Eu estou usando Python e PyGTK. Estou interessado em executar uma determinada função, que obtém dados de uma porta serial e os salva a cada vários minutos.

Atualmente, estou usando a função sleep () na biblioteca de tempo. Para poder fazer o processamento, tenho meu sistema configurado assim:

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

Essa configuração permite que eu tenha intervalos de 5 minutos entre a leitura de dados da porta serial. Meu problema é que eu gostaria de ter a minha função readserial () pausar o que está acontecendo a cada 5 minutos e ser capaz de fazer as coisas o tempo todo, em vez de usar a função time.sleep ().

Alguma sugestão sobre como resolver este problema? Multithreading? Interrompe Por favor, tenha em mente que eu estou usando python.

Obrigado.

questionAnswers(4)

yourAnswerToTheQuestion