中山网站建设排名,成都网站建设新线加,布局网站开发,网站服务器租用怎么购买在做AI模型推理的接口时#xff0c;这时候接口是非异步的#xff0c;但是uvicorn运行FastAPI时就会出现阻塞所有请求。
这时候需要解决这个问题#xff1a;
api.py#xff1a;
import asyncio
from fastapi import FastAPI
from fastapi.responses import StreamingResp…在做AI模型推理的接口时这时候接口是非异步的但是uvicorn运行FastAPI时就会出现阻塞所有请求。
这时候需要解决这个问题
api.py
import asyncio
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
import time
import io
import uvicornapp FastAPI()def my_io(num):print(num)time.sleep(20)app.get(/hello)
async def hello():loop asyncio.get_event_loop()# my_io 里包含不支持异步操作的代码 所以就使用线程池来配合实现了。future loop.run_in_executor(None , my_io , 666)response await futureprint(运行完成, response)return {message : success}def read_image_data(image_path : str):with open(image_path , rb) as fr:datas fr.read()return datasapp.get(/show_image/{image_path:path})
async def show_image(image_path : str):datas await asyncio.get_event_loop().run_in_executor(None , read_image_data , image_path)bytes io.BytesIO(datas)return StreamingResponse(bytes , media_typeimage/png)if __name__ __main__:uvicorn.run(api:app, host0.0.0.0, port10001, reloadTrue) 完美解决perfect