Estoy usando Python y PyGTK. Estoy interesado en ejecutar una determinada función, que obtiene datos de un puerto serie y los guarda, cada varios minutos.Ejecutar una función cada X minutos - Python
Actualmente, estoy usando la función sleep() en la biblioteca de tiempo. Con el fin de ser capaz de hacer el proceso, tengo mi sistema configurado de esta manera:
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)
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 read() pausa cualquier cosa que ocurra cada 5 minutos y pueda hacer cosas todo el tiempo en lugar de usar la función time.sleep().
¿Alguna sugerencia para resolver este problema? Multithreading? ¿Interrumpe? Tenga en cuenta que estoy usando Python.
Gracias.
Gracias. Ese es el tipo de cosa que estaba buscando. – mouche
Su devolución de llamada debe devolver 'True' o' False' para continuar o finalizar el evento. –
La pregunta es antigua, pero si alguien necesita hacer esto en Gtk + 3, la función es 'GLib.timeout_add (delay, function, arg)' – arkocal