4 ms·
I didn't explain it well in my comment. Consider the following example: def blocking(): time.sleep(5) @app.get("/") async def index(): blocking() The
by lukin0110 6y ago
I didn't explain it well in my comment. Consider the following example:
def blocking():
time.sleep(5)
@app.get("/")
async def index():
blocking()
The `blocking` function will blocking the event loop. This is something you need to be aware of. Gist with a few scenarios: https://gist.github.com/lukin0110/0074ec5325224674010193bb95f8b835 https://gist.github.com/lukin0110/0074ec5325224674010193bb95...
- kylebarron 6y agoIsn't the point that you should be using `def`, not `async def` here?
- lukin0110 6y agoYes. But this is a very basic example. When you have an async function defined with `await` statements in it and later on in the function you do a call to a `blocking` function you need to be aware that you have to run in the threadpool. You don't always know that a function call is blocking, because you don't always know what is happening behind the scenes of that function and on what it depends.