from twisted.internet import reactor DEFAULT_TIMEOUT = 5 * 60 # in seconds timer = None def die(): reactor.stop() def ping(delay=DEFAULT_TIMEOUT): global timer if timer is not None: timer.cancel() timer = reactor.callLater(delay, die)