code: def run(self, input_fname, ids_per_job, stagger=0, **wait_params):
          
          submit_thread = Thread(target=self.submit_reading,
                                 args=(input_fname, 0, None, ids_per_job),
                                 kwargs={'stagger': stagger},
                                 daemon=True)
          submit_thread.start()
          self.watch_and_wait(**wait_params)
          submit_thread.join(0)
          if submit_thread.is_alive():
              logger.warning("Submit thread is still running even after job"
                             "completion.")
          return
docs: Run this submission all the way.
  
          This method will run both `submit_reading` and `watch_and_wait`,
          blocking on the latter.