Невозможно иметь несколько сеансов для запуска @ app.route, который запускает скрипт Python - PullRequest
0 голосов
/ 09 мая 2019

Я тестирую приложение фляги, чтобы запустить скрипт на python, который сгенерирует 500 000 случайных чисел, по которым будет отсортировано 6 самых популярных номеров.

Я наберу "http://localhost:5000/gen" inадресная строка и нужно ждать около 30 минут для результата. Это работает нормально.

Однако, если я нажимаю на другую вкладку браузера, чтобы запустить другой сеанс "http://localhost:5000/gen", пока первыйодин все еще работает, он просто будет висеть там.Он может быть запущен только после завершения первого сеанса с возвращаемым результатом.

Я подумал, что колба не сможет позаботиться о нескольких сеансах, поскольку это веб-движок.

Будем очень благодарны за любые советы о том, как этого добиться.

Спасибо.

@app.route('/gen')
def start_gen():
    # run the python script to generate 500,000 numbers and return top 6  
    # most generated number

    results = str(gen()) 

    return render_template('results.html',the_results = results)

1 Ответ

1 голос
/ 09 мая 2019

Встроенный сервер Flask предназначен только для разработки, и по умолчанию он использует один поток и может обрабатывать только один запрос за раз.

Вы можете настроитьавтономный контейнер WSGI для обслуживания одновременных запросов - это также практичный метод для развертывания.

В качестве альтернативы вы можете передать опции в flask.Flask.run (), который будет передан werkzeug .

if __name__ == '__main__':
    app.run(threaded=True)  # run the flask server in threaded mode

или

if __name__ == '__main__':
    app.run(processes=10)  # run up to 10 concurrent processes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...