<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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)