Start listening to messages, using a separate thread.

def _listen_inbox_messages(self):
        """Start listening to messages, using a separate thread."""
        # Collect messages in a queue
        inbox_queue = Queue(maxsize=self._n_jobs * 4)

        threads = []  # type: List[BotQueueWorker]

        try:
            # Create n_jobs inbox threads
            for i in range(self._n_jobs):
                t = BotQueueWorker(name='InboxThread-t-{}'.format(i),
                                   jobs=inbox_queue,
                                   target=self._process_inbox_message)
                t.start()
                self._threads.append(t)

            # Iterate over all messages in the messages stream
            for message in self._reddit.inbox.stream():
                # Check for stopping
                if self._stop:
                    self._do_stop(inbox_queue, threads)
                    break

                inbox_queue.put(message)

            self.log.debug('Listen inbox stopped')
        except Exception as e:
            self._do_stop(inbox_queue, threads)
            self.log.error('Exception while listening to inbox:')
            self.log.error(str(e))
            self.log.error('Waiting for 10 minutes and trying again.')
            time.sleep(10 * 60)

            # Retry:
            self._listen_inbox_messages()