Как запустить фоновый процесс и получить возвращенные данные в функции HTTP Python FastapiPython

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

Сообщение Anonymous »

Я использую Python fastapi для запуска запроса GET, который запускает файл .jar, который возвращает немного текста. Запрос GET запускается кнопкой нажатием на переднем крае. Программа Java занимает около 30 секунд, и я попытался запустить ее асинхронно, но не смог. Нажав кнопку два раза на секунду друг от друга продолжает занимать 60 секунд, а не 31 < /p>
Я пытался использовать модуль с потоком (хотя это, я считаю, не позволит мне получить возвращаемые данные), но даже это заставляет меня ждать, чтобы процесс закончил, прежде чем он начнет следующее. Функция для выполнения команды Java тоже будет в порядке). < /p>
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 ... on-fastapi
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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