code: def _check_producer_alive(self):
      if self._producer_conn is None or self._producer_send is None:
          return False
  
      try:
          self._producer_conn.get_topic_partitions("test-alive")
          self._producer_send.flush()
          return True
      except Exception as e:
          LOGGER.debug("catch {}, closing producer client".format(e))
          if self._producer_conn is not None:
              try:
                  self._producer_conn.close()
              except Exception:
                  pass
  
          self._producer_conn = None
          self._producer_send = None
          return False
  
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 9 for calling the MQChannel obj's underlying member method code with example usage: obj._check_producer_alive() and returns: False, True, False