:Pythonでウォッチドッグタイマーを実装する方法は?私は2つのユースケースとPythonでシンプルなウォッチドッグタイマを実装したいと思い
- ウォッチドッグ機能は、ウォッチドッグは、特定の定期実行機能が実際に実行しないことを保証します
x
秒 - より長いを実行していないことを保証します少なくともすべて
y
秒
どうすればよいですか?あなたが定期的に何かを実行し、したい場合は
watchdog = Watchdog(x)
try:
# do something that might take too long
except Watchdog:
# handle watchdog error
watchdog.stop()
使用法:あなたは機能未満x
秒で終了したことを確認したい場合に使用
from threading import Timer
class Watchdog:
def __init__(self, timeout, userHandler=None): # timeout in seconds
self.timeout = timeout
self.handler = userHandler if userHandler is not None else self.defaultHandler
self.timer = Timer(self.timeout, self.handler)
self.timer.start()
def reset(self):
self.timer.cancel()
self.timer = Timer(self.timeout, self.handler)
self.timer.start()
def stop(self):
self.timer.cancel()
def defaultHandler(self):
raise self
:ちょうどこれを私自身の解決策を公開
ここで '[WatchdogTimer'の実装です1つのスレッドしか作成しない](https://stackoverflow.com/a/34115590/4279) – jfs