Uruchom funkcję co X minut - Python

Używam Pythona i PyGTK. Jestem zainteresowany uruchomieniem określonej funkcji, która pobiera dane z portu szeregowego i zapisuje je co kilka minut.

Obecnie używam funkcji sleep () w bibliotece czasu. Aby móc przetwarzać, mam swój system skonfigurowany w ten sposób:

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

Ta konfiguracja pozwala mi na 5 minutowe przerwy między odczytem danych z portu szeregowego. Mój problem polega na tym, że chciałbym mieć możliwość zatrzymania mojej funkcji readserial (), niezależnie od tego, co się dzieje co 5 minut, i móc cały czas robić rzeczy, zamiast korzystać z funkcji time.sleep ().

Wszelkie sugestie, jak rozwiązać ten problem? Wielowątkowość? Przerwania? Pamiętaj, że używam Pythona.

Dzięki.

questionAnswers(4)

yourAnswerToTheQuestion