docs: def _republish_processing_error(self, error):
          """Republish the original message that was received because a
          :exc:`~rejected.consumer.ProcessingException` was raised.
  
          This for internal use and should not be extended or used directly.
  
          Add a header that keeps track of how many times this has happened
          for this message.
  
          :param str error: The string value for the exception
  
          """
          self.logger.debug('Republishing due to ProcessingException')
          properties = dict(self._message.properties) or {}
          if 'headers' not in properties or not properties['headers']:
              properties['headers'] = {}
  
          if error:
              properties['headers']['X-Processing-Exception'] = error
  
          if _PROCESSING_EXCEPTIONS not in properties['headers']:
              properties['headers'][_PROCESSING_EXCEPTIONS] = 1
          else:
              try:
                  properties['headers'][_PROCESSING_EXCEPTIONS] += 1
              except TypeError:
                  properties['headers'][_PROCESSING_EXCEPTIONS] = 1
  
          self._message.channel.basic_publish(
              self._error_exchange, self._message.routing_key,
              self._message.body, pika.BasicProperties(**properties))