def start_uvicorn():
    config = Config(app=app,
                    host="0.0.0.0",
                    loop="asyncio",
                    log_level=logger.level)
    server = Server(config=config)
    server.run()
Exemple #2
0
class UvicornWorker(Worker):
    """
    A worker class for Gunicorn that interfaces with an ASGI consumer callable,
    rather than a WSGI callable.
    """

    CONFIG_KWARGS = {"loop": "uvloop", "http": "httptools"}

    def run(self):
        self.log.level = self.log.loglevel
        kwargs = {
            "app": self.wsgi,
            "sockets": self.sockets,
            "logger": self.log,
            "timeout_keep_alive": self.cfg.keepalive,
            "timeout_notify": self.timeout,
            "callback_notify": self.callback_notify,
        }
        kwargs.update(self.CONFIG_KWARGS)
        self.config = Config(**kwargs)
        self.server = Server(config=self.config)
        self.server.run()

    def init_signals(self):
        pass

    async def callback_notify(self):
        self.notify()
Exemple #3
0
def start_uvicorn():
    config = Config(app=app,
                    host="0.0.0.0",
                    port='9000',
                    loop="asyncio",
                    log_level=logger.level)
    server = Server(config=config)
    logger.debug("Starting up the message queue")
    server.run()
Exemple #4
0
def run(
        app,
        host='127.0.0.1',
        port=8000,
        uds=None,
        fd=None,
        loop='auto',
        proto_http='auto',
        proto_ws='auto',
        log_level=None,
        access_log=None,
        proxy_headers=False,
        proxy_trust_ips=None,
        limit_concurrency=None,
        # limit_max_requests=None,
        backlog=2048,
        timeout_keep_alive=0
    # timeout_notify=30
):
    loop = loops.get_loop(loop)
    protocol_cls_http = protocols_http.get_protocol(proto_http)
    protocol_cls_ws = protocols_ws.get_protocol(proto_ws)

    app.send_signal(Signals.after_loop, loop=loop)

    if access_log is None:
        access_log = bool(app.debug)

    log_level = (LOG_LEVELS[log_level] if log_level else
                 (logging.DEBUG if app.debug else logging.WARNING))

    if proxy_trust_ips is None:
        proxy_trust_ips = os.environ.get("PROXY_TRUST_IPS", "*")

    uvicorn_config = Config(
        app=app,
        host=host,
        port=port,
        uds=uds,
        fd=fd,
        loop=loop,
        http=protocol_cls_http,
        ws=protocol_cls_ws,
        log_level=log_level,
        access_log=access_log,
        debug=bool(app.debug),
        proxy_headers=proxy_headers,
        forwarded_allow_ips=proxy_trust_ips,
        limit_concurrency=limit_concurrency,
        # limit_max_requests=limit_max_requests,
        backlog=backlog,
        timeout_keep_alive=timeout_keep_alive,
        # timeout_notify=timeout_notify
    )
    server = Server(uvicorn_config)
    server.run()
Exemple #5
0
def run(
        app,
        host='127.0.0.1',
        port=8000,
        uds=None,
        fd=None,
        loop='auto',
        proto_http='auto',
        proto_ws='auto',
        log_level=None,
        access_log=None,
        # proxy_headers=False,
        limit_concurrency=None,
        # limit_max_requests=None,
        timeout_keep_alive=0
    # timeout_notify=30
):
    loop = loops.get_loop(loop)
    protocol_cls_http = protocols_http.get_protocol(proto_http)
    protocol_cls_ws = protocols_ws.get_protocol(proto_ws)

    app.send_signal('after_loop', loop=loop)

    if access_log is None:
        access_log = bool(app.debug)

    uvicorn_config = Config(
        app=app,
        host=host,
        port=port,
        uds=uds,
        fd=fd,
        loop=loop,
        http=protocol_cls_http,
        ws=protocol_cls_ws,
        logger=_build_server_logger(app, log_level),
        access_log=access_log,
        debug=bool(app.debug),
        limit_concurrency=limit_concurrency,
        # limit_max_requests=limit_max_requests,
        timeout_keep_alive=timeout_keep_alive,
        # timeout_notify=timeout_notify
    )
    server = Server(uvicorn_config)
    server.run()
    def server_run():
        def on_tick_sync():
            if not ready.is_set():
                loops.append(asyncio.get_event_loop())
                ready.set()

        async def on_tick():
            on_tick_sync()

        config = Config(app, host="127.0.0.1", port=port, loop="asyncio")
        config.callback_notify = on_tick
        config.log_config = {"version": 1}
        config.disable_lifespan = True
        config.logger = logging.getLogger("uvicorn")
        server = Server(config=config)
        server.install_signal_handlers = lambda *args, **kwargs: None
        try:
            server.started.set = on_tick_sync
        except Exception:
            pass
        server.run()
Exemple #7
0
def test_server():
    server = Server(None)
    server.should_exit = True
    server.run()