def start(self, start_listeners=True): self.log('Server', 'info', 'starting server') for name in self.config.components: self.components[name] = self.config.components.import_(name)(self, name) self._greenlet = eventlet.spawn(self._process) if start_listeners and 'backdoor_port' in self.config.server: # enable backdoor console bdport = self.config.getint(('server', 'backdoor_port')) self.log('Server', 'info', 'enabling backdoor on port %s' % bdport) eventlet.spawn(backdoor.backdoor_server, eventlet.listen(('127.0.0.1', bdport)), locals={'server': self, 'debug': debug, 'exit': safe_exit(), 'quit': safe_exit(), 'stats': lambda: pprint.pprint(self.stats()), }) app = create_application(self) dirs = self.config.server.get('static_directories', None) if dirs is not None: app = StaticFileServer(dirs.split(','), app, self) self.wsgiapp = app if start_listeners: numsimulreq = self.config.get(('http', 'max_simultaneous_reqs')) host = self.config.http.address port = self.config.http.getint('port') sock = eventlet.listen((host, port)) pool = self.server_pool = eventlet.GreenPool(10000) log = (self.options.nohttp or self.options.statdump) and \ dummylog() or None wsgi.server(sock, app, custom_pool=pool, log=log)
def _serve_http(self): app = create_application(self) self.wsgiapp = app wsgi.server(self.httpsock, app)