Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

635
Visualizações
No se pueden ejecutar tareas en segundo plano con fastapi - 504: error de tiempo de espera de la puerta de enlace

Estoy usando fastapi para hacer predicciones en un modelo ml. Debido a que una sola predicción tarda más de 2 minutos, he hecho que la predicción se ejecute como una tarea en segundo plano usando las tareas en segundo plano de fastapi. Ahora, cuando implementé en Digital Ocean, no pude ejecutar el trabajador en segundo plano. Recibo 504: Gateway Timeout Error de enlace.

comando de inicio

 gunicorn --worker-tmp-dir /dev/shm --config gunicorn.config.py main:app

gunicorn.config.py

 bind = "0.0.0.0:8080" workers = 4 worker_class = "uvicorn.workers.UvicornWorker"

main.py

 response = {} async def predictions(solute, solvent): mol = Chem.MolFromSmiles(solute) solute_graph = get_graph_from_smile(solute) mol = Chem.MolFromSmiles(solvent) solvent_graph = get_graph_from_smile(solvent) delta_g, interaction_map = model([solute_graph.to(device), solvent_graph.to(device)]) interaction_map_one = torch.trunc(interaction_map) response["interaction_map"] = (interaction_map_one.detach().numpy()).tolist() response["predictions"] = delta_g.item() @app.post('/predict_solubility') async def post(): return {'result': response} @app.post('/predict') async def predict(background_tasks: BackgroundTasks,solute,solvent): background_tasks.add_task(predictions,solute,solvent) return {'success'} response_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() @app.post('/predict_solubility_json') async def post(): return {'result': response_two} @app.get('/predict_two') async def predict_two(background_tasks: BackgroundTasks,solute): background_tasks.add_task(predictions_two,solute) return {'success'} if __name__ == "__main__": uvicorn.run(app,host="0.0.0.0", port=8000, reload=True)

He agregado un worker en el océano digital de los componentes a pesar de que todavía tengo un tiempo de espera del servidor. No estoy seguro de si no he implementado tareas en segundo plano usando fastapi porque hay algún problema con mi comando de inicio

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda