docs: def stop(self):
          """
          Stop the mq publisher by closing the channel and connection. We
          set a flag here so that we stop scheduling new messages to be
          published. The IOLoop is started because this method is
          invoked by the Try/Catch below when KeyboardInterrupt is caught.
          Starting the IOLoop again will allow the publisher to cleanly
          disconnect from RabbitMQ.
          """
          self._logger.info('Stopping')
          self._stopping = True
          self.close_connection()
          try:
              self._connection.ioloop.start()  # supposedly this is necessary...
          except Exception as e:
              pass
          self._logger.info('Stopped')