Publish the message to RabbitMQ

        :param str exchange: The exchange to publish to
        :param str routing_key: The routing key to publish with
        :param str message: The message body
        :param pika.BasicProperties: The message properties

def _publish_message(self, exchange, routing_key, message, properties):
        """Publish the message to RabbitMQ

        :param str exchange: The exchange to publish to
        :param str routing_key: The routing key to publish with
        :param str message: The message body
        :param pika.BasicProperties: The message properties

        """
        if self._rabbitmq_is_closed or not self._rabbitmq_channel:
            LOGGER.warning('Temporarily buffering message to publish')
            self._add_to_publish_stack(exchange, routing_key,
                                       message, properties)
            return
        self._rabbitmq_channel.basic_publish(exchange, routing_key,
                                             message, properties)