from fastapi import FastAPI
import uvicorn
app = FastAPI()
#Some long processing code, with async declaration
async def doBTask():
print ("Request started")
#asyncio.sleep(20)
sum = 0
for n in range (1, 10000):
for m in range(1,10000):
if m%n ==0:
pass
else:
sum = sum + n
print ("Completed")
return sum
@app.get("/")
async def read_root():
result = await doBTask()
return {"Result": result}
uvicorn.run(app, host="0.0.0.0", port=7000)
When we call that URL in different tabs, the output is coming one after another (even print also). It is clearly single processing but not parallel request processing. Can someone guide where is the mistake, and why FastAPI with async and await not working?
Edit Here is the response I am getting if tried in different browsers and dummy params (you can see, it is processing one after another, even though I sent all at a time)
Request started
Completed
INFO: 127.0.0.1:58998 - "GET /?n=10 HTTP/1.1" 200 OK
Request started
Completed
INFO: 127.0.0.1:59012 - "GET /?m=30 HTTP/1.1" 200 OK
Request started
Completed
INFO: 127.0.0.1:59288 - "GET / HTTP/1.1" 200 OK