code: def shutdown(
              self):
          
  
          # Only initiate shutdown once
          if self.is_shutting_down(
                  shutdown_event=self.shutdown_event):
              self.debug_log('shutdown - still shutting down')
              return
          else:
              self.debug_log('shutdown - start - setting instance shutdown')
              self.shutdown_now = True
              self.shutdown_event.set()
          # if/else already shutting down
  
          self.debug_log(
              'shutdown - trying to publish remaining msgs')
  
          # Send the remaining items that might be sitting in queue.
          self.perform_work(
              self.queue,
              self.shutdown_event,
              self.shutdown_ack,
              self.already_done)
  
          self.debug_log('shutdown - joining')
  
          for p in self.processes:
              p['shutdown_event'].set()
  
          self.debug_log('shutdown - done')
docs: shutdown