import os import threading import time from hc_spider.model import SharedObjects class Timer(threading.Thread): _shared_objects: SharedObjects def __init__(self, **kwargs) -> None: self._shared_objects = SharedObjects(**kwargs) super().__init__() self.daemon = True self.name = "Timer" def run(self) -> None: print(f"{self.name} started with pid [{os.getpid()}]") runtime = self._shared_objects.config.get("timer_runtime", 0) if runtime == 0: return time.sleep(runtime) print(f"{self.name} timer reached the end of runtime, exiting") self._shared_objects.shutdown_event.set() print(f"[{self.name}] is shutting down", flush=True) def __del__(self) -> None: print(f"[{self.name}] exited")