20 lines
554 B
Python
20 lines
554 B
Python
from typing import Callable
|
|
import time
|
|
|
|
class Watchdog:
|
|
def __init__(self, timeout:int=60, interval:int=20):
|
|
self.timeout = timeout
|
|
self.interval = interval
|
|
self.last_feed_time = time.time()
|
|
|
|
def feed(self):
|
|
self.last_feed_time = time.time()
|
|
|
|
def setCallback(self, callback):
|
|
self.callback = callback
|
|
|
|
def start(self):
|
|
if time.time() - self.last_feed_time > self.timeout:
|
|
if isinstance(self.callback, Callable):
|
|
self.callback()
|
|
time.sleep(self.interval) |