code: def _listen_submissions(self):
          
          # Collect submissions in a queue
          subs_queue = Queue(maxsize=self._n_jobs * 4)
  
          threads = []  # type: List[BotQueueWorker]
  
          try:
              # Create n_jobs SubmissionThreads
              for i in range(self._n_jobs):
                  t = BotQueueWorker(name='SubmissionThread-t-{}'.format(i),
                                     jobs=subs_queue,
                                     target=self._process_submission)
                  t.start()
                  self._threads.append(t)
  
              # Iterate over all comments in the comment stream
              for submission in self._reddit.subreddit('+'.join(self._subs)).stream.submissions():
  
                  # Check for stopping
                  if self._stop:
                      self._do_stop(subs_queue, threads)
                      break
  
                  subs_queue.put(submission)
  
              self.log.debug('Listen submissions stopped')
          except Exception as e:
              self._do_stop(subs_queue, threads)
              self.log.error('Exception while listening to submissions:')
              self.log.error(str(e))
              self.log.error('Waiting for 10 minutes and trying again.')
              time.sleep(10 * 60)
  
              # Retry:
              self._listen_submissions()
docs: Start listening to submissions, using a separate thread.