Sto usando Python e PyGTK. Sono interessato a eseguire una determinata funzione, che recupera i dati da una porta seriale e la salva, ogni pochi minuti.Esegui una funzione ogni X minuti - Python
Attualmente, sto utilizzando la funzione sleep() nella libreria di orari. Al fine di essere in grado di fare l'elaborazione, ho il mio sistema impostato in questo modo:
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)
Questa configurazione mi permette di avere intervalli di 5 minuti tra la lettura dei dati dalla porta seriale. Il mio problema è che mi piacerebbe poter avere la mia funzione readserial() sospendere tutto ciò che accade ogni 5 minuti ed essere in grado di fare cose tutte le volte invece di usare la funzione time.sleep().
Qualche suggerimento su come risolvere questo problema? Multithreading? Interrupt? Si prega di tenere presente che sto usando Python.
Grazie.
Grazie. Questo è solo il tipo di cosa che stavo cercando. – mouche
Il callback deve restituire "True" o "False" per continuare o terimere l'evento. –
La domanda è vecchia, ma se qualcuno ha bisogno di farlo su Gtk + 3, la funzione è 'GLib.timeout_add (delay, function, arg)' – arkocal