def _run(self, index):
        """Run method for one thread or process
        Just pull an item off the queue and process it,
        until the queue is empty.

        :param index: Sequential index of this process or thread
        :type index: int
        """
        while 1:
            try:
                item = self._queue.get(timeout=2)
                self.process_item(item)
            except Queue.Empty:
                break
            except Exception as err:
                _log.error("In _run(): {}".format(err))
                if _log.isEnabledFor(logging.DEBUG):
                    _log.error(traceback.format_exc())
                self._status.fail(index)
                raise
        self._status.success(index)