docs: def run(self):
          """Run the hight quarter, lunch the turrets and wait for results
          """
          elapsed = 0
          run_time = self.config['run_time']
          start_time = time.time()
          t = time.time
          self.turrets_manager.start(self.transaction_context)
          self.started = True
  
          while elapsed <= run_time:
              try:
                  self._run_loop_action()
                  self._print_status(elapsed)
                  elapsed = t() - start_time
              except (Exception, KeyboardInterrupt):
                  print("\nStopping test, sending stop command to turrets")
                  self.turrets_manager.stop()
                  self.stats_handler.write_remaining()
                  traceback.print_exc()
                  break
  
          self.turrets_manager.stop()
          print("\n\nProcessing all remaining messages... This could take time depending on message volume")
          t = time.time()
          self.result_collector.unbind(self.result_collector.LAST_ENDPOINT)
          self._clean_queue()
          print("took %s" % (time.time() - t))