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

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

Сообщение Anonymous »

Я использую FASTAPI для запуска запроса GET , который запускает файл .jar , который возвращает немного текста. Запрос GET запускается кнопкой нажатием на фронта. Программа Java занимает около 30 секунды, и я попытался запустить ее асинхронно , но не смог. Нажатие кнопки два раза одна секунду друг от друга продолжает брать 60 секунд, а не 31 .
Я попытался использовать модуль потока (хотя, я считаю, что это не позволит мне получить возвращенные данные), но даже это заставляет меня ждать процесса, прежде чем он не начнет код, чтобы сделать код. subprocess.run () function асинхронно (или использование другой функции для выполнения команды Java тоже было бы хорошо).
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»