【发布时间】:2022-02-07 05:34:04
【问题描述】:
我已经在 Heroku 中使用 Fast API 部署了一个机器学习模型,并且我已经实现了后台工作程序和异步,但是当我进行推理时,我仍然收到 503 错误。我知道 Heroku 中的服务器响应时间是 30 秒。
但是当我使用后台工作程序时,我应该能够在后台运行,相反,我遇到了错误。我正在使用 Heroku 免费计划进行部署
app = FastAPI()
response = {}
@app.get('/predict')
async def predictions(solute, solvent):
mol = Chem.MolFromSmiles(solute)
response["predictions"] = delta_g.item()
return {'result': response}
async def predict(background_tasks: BackgroundTasks,solute,solvent):
background_tasks.add_task(predictions,solute,solvent)
from predict_json import json_data_func
@app.get('/predict_two')
async def predictions_two(solute):
for i in data:
delta_g, interaction_map = model([get_graph_from_smile(Chem.MolToSmiles(Chem.AddHs(Chem.MolFromSmiles(solute)))).to(device), get_graph_from_smile(Chem.MolToSmiles(Chem.AddHs(Chem.MolFromSmiles(i)))).to(device)])
response_two[i] = delta_g.item()
return {'result': response_two}
async def predict_two(background_tasks: BackgroundTasks,solute):
background_tasks.add_task(predictions_two,solute)
Procfile:
web: gunicorn -w 2 -k uvicorn.workers.UvicornWorker main:app
那么我应该怎么做才能在后台运行我的代码而不会出现服务器响应超时错误?
【问题讨论】:
标签: python asynchronous heroku async-await fastapi