Example #1
0
File: wsgi.py Project: te-je/ohoh
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()
Example #2
0
def main():
    server_reloader.main(run_server, before_reload=print_reloading)
Example #3
0
def main():
    # https://pypi.org/project/server-reloader/0.1.3/
    server_reloader.main(run_server,
                         before_reload=lambda: print('Reloading code…'))
Example #4
0
def main():
    server_reloader.main(run, before_reload=lambda: print('Reloading code…'))
Example #5
0
@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)