code: def process_message(self, msg):
      # type: (Message) -> None
      if msg.msg_type == MessageTypes.SHUTDOWN:
          self._shutdown()
      if not self.req_thread.is_alive():
          # set post url
          self.hb_url = msg.payload[HB_URL_KEY]
          # start thread
          self.req_thread.start()
  
file_path: metaflow/metaflow/metadata/heartbeat.py
imports: import time
  import requests
  import json
  from threading import Thread
  from metaflow.sidecar import MessageTypes, Message
  from metaflow.metaflow_config import SERVICE_HEADERS
  from metaflow.exception import MetaflowException
label_desc: Use image node_id 2 for calling the MetadataHeartBeat obj's underlying member method code with example usage: obj.process_message(msg) without return types