code: def produce(self, body, properties):
      self._get_or_create_producer()
      LOGGER.debug("send queue: {}".format(self._producer_send.topic()))
      LOGGER.debug("send data size: {}".format(len(body)))
  
      message_id = self._producer_send.send(
          content=body, properties=properties
      )
      if message_id is None:
          raise Exception("publish failed")
  
      self._sequence_id = message_id
  
file_path: FATE/python/fate/arch/federation/backends/pulsar/_mq_channel.py
imports: import logging
  import pulsar
  from fate.arch.federation.message_queue import nretry
label_desc: Use image node_id 2 for calling the MQChannel obj's underlying member method code with example usage: obj.produce(body, properties) without return types