Возможно, вы можете использовать сигналы.Идея состоит в том, что вы устанавливаете обработчик сигнала для вызова при генерации SIGALRM.В обработчике сигналов вы можете позвонить function
.Затем вы сбрасываете сигнал тревоги и делаете это снова.Это простой пример, чтобы дать вам представление.
import signal
...
signal.signal(signal.SIGALRM, alarm_handler) # set the signal handler
signal.alarm(interval) # set the alarm
...
def alarm_handler(signum, stack):
# call function
function()
После того, как будильник сработал, вы набираете function()
и затем сбрасываете будильник:
signal.signal(signal.SIGALRM, alarm_handler)
signal.alarm(interval)
Или вы можетеиспользуйте signal.setitimer
для автоматической настройки интервальных сигналов, однако я не уверен, как это будет работать с большими временными срезами (это используется для микросон).
ПРИМЕЧАНИЕ. Вы должны вызвать signal.alarm () из основного потока.