Как я могу запустить фоновый процесс и получить возвращенные данные в Fastapi?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу запустить фоновый процесс и получить возвращенные данные в Fastapi?

Сообщение Anonymous »

Я использую FASTAPI для запуска запроса GET , который запускает файл .jar , который возвращает немного текста. Запрос GET запускается кнопкой нажатием на фронте. Программа Java занимает около 30 секунды, и я попытался запустить ее асинхронно , но не смог. Нажатие кнопки дважды - одна секунду - контакты, занимающие 60 секунд, а не 31 для завершения процесса. subprocess.run () function асинхронно (или использование другой функции для выполнения команды Java тоже было бы хорошо).
@app.get("/test")
async def test_java():
print(f'Starting: {datetime.now()}')
try:
msg = subprocess.run(['java', '-cp', 'AsyncTest.jar', 'AsyncTest'], cwd='java_files', capture_output=True, check=True, text=True)
results = msg.stdout if msg.stdout else msg.stderr
except:
return JSONResponse(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
content={
'results': f'error running script'
}
)

print(f'Finishing: {datetime.now()}')

return JSONResponse(
status_code=status.HTTP_200_OK,
content={
'results': results
}
)


Подробнее здесь: https://stackoverflow.com/questions/796 ... in-fastapi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»