class_docstr: Server that works with ``LocalTimerClient``. Clients are expected to be
  subprocesses to the parent process that is running this server. Each host
  in the job is expected to start its own timer server locally and each
  server instance manages timers for local workers (running on processes
  on the same host).
code: def get_expired_timers(
      self, deadline: float
  ) -> Dict[Any, List[TimerRequest]]:
      # pid -> [timer_requests...]
      expired_timers: Dict[Any, List[TimerRequest]] = {}
      for request in self._timers.values():
          if request.expiration_time <= deadline:
              expired_scopes = expired_timers.setdefault(
                  request.worker_id, []
              )
              expired_scopes.append(request)
      return expired_timers
  
imports: import logging
  import multiprocessing
  import os
  import signal
  import time
  from queue import Empty
  from typing import Any, Dict, List, Set, Tuple
  from .api import RequestQueue, TimerClient, TimerRequest, TimerServer
label_desc: Use image node_id 4 for calling the LocalTimerServer obj's underlying member method code with example usage: obj.get_expired_timers(deadline) and returns: expired_timers