code: def start_check (aggregate, out):
      
      # check in background
      t = threading.Thread(target=director.check_urls, args=(aggregate,))
      t.start()
      # time to wait for new data
      sleep_seconds = 2
      # current running time
      run_seconds = 0
      while not aggregate.is_finished():
          yield out.get_data()
          time.sleep(sleep_seconds)
          run_seconds += sleep_seconds
          if run_seconds > MAX_REQUEST_SECONDS:
              director.abort(aggregate)
              break
      yield out.get_data()
docs: Start checking in background and write encoded output to out.