def inner_run(self): """Get handler and start IOLoop""" parse_command_line() logger.info("Validating models...") self.validate(display_num_errors=True) logger.info("\nDjango version %(version)s, using settings %(settings)r\n" "Server is running at http://%(addr)s:%(port)s/\n" "Quit the server with %(quit_command)s.\n" % { "version": self.get_version(), "settings": settings.SETTINGS_MODULE, "addr": self.addr, "port": self.port, "quit_command": self.quit_command, }) app = self.get_handler() set_application(app) server = httpserver.HTTPServer(app) server.listen(int(self.port), address=self.addr) try: ioloop.IOLoop.instance().start() except KeyboardInterrupt: logger.warn("Shutting down Tornado ...") finally: tornado_exit.send_robust(sender=self) sys.exit(0)
def _stop(self): if self._started: self.io_loop.stop() self._io_thread.join() self._io_thread = None self.stop() self._sockets = {} self._started = False # send exit signal tornado_exit.send_robust(sender = self)