def run_simple(host, port, wsgi_app, use_debugger=True, use_reloader=True, server_class=_OhOhServer, handler_class=OhOhRequestHandler): def start(): # Create the server httpd = make_server(host, port, wsgi_app, server_class=server_class, handler_class=handler_class) # And run it LOG.log(logging.INFO, "* Serving on %s:%d %s...", host, port, "with debugger" if use_debugger else "") if use_reloader is True: LOG.log(logging.INFO, "* Using reloader") try: httpd.serve_forever() except KeyboardInterrupt: LOG.log(logging.DEBUG + 5, "Keyboard Interrupt. Stopping server.") return def before_reload(): LOG.log(logging.INFO, "* Restarting with reloader.") LOG.log(logging.INFO, "") if use_reloader is True: server_reloader.main(start, before_reload=before_reload) else: start()
def main(): server_reloader.main(run_server, before_reload=print_reloading)
def main(): # https://pypi.org/project/server-reloader/0.1.3/ server_reloader.main(run_server, before_reload=lambda: print('Reloading code…'))
def main(): server_reloader.main(run, before_reload=lambda: print('Reloading code…'))
@app.route('/asset/<pid>/:filename#.*.unity3d#/') def _sendAssetBundle(pid, filename): #some path map log.debug('sending asset: ', settings.ASSET_BUNDLE_ROOT, filename) return static_file(filename, root=settings.ASSET_BUNDLE_ROOT) def run_server(): host = settings.LISTEN_HOST port = settings.LISTEN_PORT #log.info('version=%s', settings.GAME_VERSION) try: log.info('serving on %s:%s...', host, port) WSGIServer((host, port), app).serve_forever() except Exception, e: log.error('Server', exc_info=e) def prepare(): log.info('prepare content') try: content.main(action='extract') create_sample_players() except Exception, e: log.warning('can not extract content: %s', e) if __name__ == '__main__': # ALTERNATIVES: use nodemon (nodejs app) or Bottle's auto-reload prepare() import server_reloader def hook(): log.warning("reloading code") server_reloader.main(run_server, before_reload=hook)