def METHOD_NAME(self):
    try:
        self.running = True
        self.scheduler = iter(self.schedule)
        while not self.__is_shutdown.is_set():
            delay = self._next_entry()
            if delay:
                if self.on_tick:
                    self.on_tick(delay)
                if sleep is None:  # pragma: no cover
                    break
                sleep(delay)
        try:
            self.__is_stopped.set()
        except TypeError:  # pragma: no cover
            # we lost the race at interpreter shutdown,
            # so gc collected built-in modules.
            pass
    except Exception as exc:
        logger.error('Thread Timer crashed: %r', exc, exc_info=True)
        sys.stderr.flush()
        os._exit(1)