29 lines
817 B
Python

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")