code: def build_payload_from_queued_messages(
              self,
              use_queue,
              shutdown_event):
          
          not_done = True
          while not_done:
  
              if self.is_shutting_down(
                      shutdown_event=shutdown_event):
                  self.debug_log(
                      'build_payload shutting down')
                  return True
  
              self.debug_log('reading from queue={}'.format(
                  str(use_queue)))
              try:
                  msg = use_queue.get(
                      block=True,
                      timeout=self.sleep_interval)
                  self.log_payload = self.log_payload + msg
                  if self.debug:
                      self.debug_log('got queued message={}'.format(
                          msg))
                  not_done = not self.queue_empty(
                      use_queue=use_queue)
              except Exception as e:
                  if self.is_shutting_down(
                          shutdown_event=shutdown_event):
                      self.debug_log(
                          'helper was shut down '
                          'msgs in the queue may not all '
                          'have been sent')
                  else:
                      self.debug_log((
                          'helper hit an ex={} shutting down '
                          'msgs in the queue may not all '
                          'have been sent').format(
                              e))
                      not_done = True
                      self.shutdown_now = True
                  return True
              # end of getting log msgs from the queue
              self.debug_log('done reading from queue')
  
              if self.is_shutting_down(
                      shutdown_event=shutdown_event):
                  self.debug_log(
                      'build_payload - already shutting down')
                  return True
  
              # If the payload is getting very long,
              # stop reading and send immediately.
              # Current limit is 50MB
              if self.is_shutting_down(shutdown_event=shutdown_event) \
                      or len(self.log_payload) >= 524288:
                  self.debug_log(
                      'payload maximum size exceeded, sending immediately')
                  return False
  
          self.debug_log('build_payload - done')
  
          return True
docs: build_payload_from_queued_messages
  
          Empty the queued messages by building a large ``self.log_payload``
  
          :param use_queue: queue holding the messages
          :param shutdown_event: shutdown event