← Back to context

Comment by alfons_foobar

11 hours ago

I might be outing myself as a noob here, but... what is the (better) alternative?

You inject the pool itself.

  • Sorry, I am being dense... how does that solve the problem?

    I still have to get a connection from the pool, I just do it inside the function body now, right?

    So this

        @app.get("/users")
        def get_users(conn = Depends[get_db_conn]):
            users = conn.execute("SELECT * FROM users")
            return users
    

    would become that instead:

        @app.get("/users")
        def get_users(pool = Depends[get_db_pool]):
            with pool.get_conn() as conn:
                users = conn.execute("SELECT * FROM users")
            return users
    

    But I still need enough connections in the pool to handle all concurrent requests, no?