Start listening to submissions, using a separate thread.

def _listen_submissions(self):
        """Start listening to submissions, using a separate thread."""
        # 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()