Пул для приложения Flask Python [дубликат]

Как уже отмечалось многими, HTML не является обычным языком, который может затруднить его синтаксический анализ. Мое решение состоит в том, чтобы превратить его в обычный язык, используя аккуратную программу, а затем использовать синтаксический анализатор XML для использования результатов. Для этого есть много хороших вариантов. Моя программа написана с использованием Java с библиотекой jtidy , чтобы превратить HTML в XML, а затем Jaxen в xpath в результат.

29
задан davidism 18 January 2017 в 16:24
поделиться

2 ответа

Начиная с Flask 1.0 сервер WSGI, включенный с Flask, запускается в поточном режиме по умолчанию.

До версии 1.0 или если вы отключили потоки, сервер запускается в однопоточном режиме и может обрабатывать только один запрос за раз. Любые параллельные запросы должны будут ждать, пока они не будут обработаны, что может привести к проблемам, если вы попытались связаться с вашим собственным сервером из запроса .

С запросами threaded=True каждый из которых обрабатывается в новом потоке. Сколько потоков, которые ваш сервер может обрабатывать одновременно, полностью зависит от вашей ОС и от каких ограничений он устанавливает количество потоков в процессе. Реализация использует класс SocketServer.ThreadingMixIn , который не устанавливает ограничений на количество потоков, которые он может вращать.

Обратите внимание, что сервер Flask предназначен только для разработки . Это не готовый к производству сервер. Не полагайтесь на это, чтобы запустить свой сайт в более широкой сети. Вместо этого используйте правильный сервер WSGI, например gunicorn или uWSGI ).

39
ответ дан davidism 15 August 2018 в 15:32
поделиться
  • 1
    Единственные люди, которые будут использовать мое приложение, - это несколько избранных людей в моем офисе. Можно ли держать его в таком состоянии? – Harrison 10 August 2016 в 14:58
  • 2
    @ Харрисон: тогда все в порядке, если эти люди не могут попытаться взломать или DDOS-машину. – Martijn Pieters♦ 10 August 2016 в 15:06
  • 3
    Я могу полностью доверять им. Вероятность того, что несколько человек будут использовать приложение одновременно, относительно тонкая, поэтому я думаю, что пока я просто буду продолжать работать на сервере Flask. В какой момент, по вашему мнению, было бы правильным решением развернуть с использованием пушки? – Harrison 10 August 2016 в 15:08
  • 4
    @Harrison: момент, когда вы хотите открыть его для более широкой сети, или вы чувствуете, что вам нужно лучше контролировать, сколько ресурсов вы хотите использовать на сервере. Специальный сервер WSGI может контролировать количество параллелизма, а также использовать несколько процессов для распределения нагрузки. – Martijn Pieters♦ 10 August 2016 в 15:10
  • 5
    uwsgi обрабатывает резьбу? Должен ли я также указывать app.run на threaded = True? или только uwsgi будет знать, чтобы запустить threaded? – Beqa Bukhradze 11 June 2018 в 05:57

Сколько запросов мое приложение сможет обрабатывать одновременно с этим утверждением?

Это сильно зависит от вашего приложения. Каждый новый запрос будет иметь поток запущен - он зависит от того, сколько потоков ваша машина может обрабатывать. Я не вижу возможности ограничить количество потоков (например, uwsgi-предложения в производственном развертывании).

Каковы недостатки этого использования? Если я не ожидаю более нескольких запросов одновременно, могу ли я продолжать использовать это?

Переход от одного потока к многопоточному может привести к ошибкам параллелизма ... if вы используете это, будьте осторожны с тем, как вы обрабатываете глобальные объекты (см. объект g в документации!) и состояние.

4
ответ дан Alex 15 August 2018 в 15:32
поделиться
  • 1
    Хорошо спасибо. Вы определенно прояснили это для меня. По моему вопросу, спрашивая, сколько запросов он может обрабатывать, мне просто интересно, как thread = true просто разрешить обработку запрошенных жестко закодированных x запросов одновременно. Так это определяется моей машиной? – Harrison 10 August 2016 в 14:57
  • 2
    Я никогда не использую dev-сервер, поэтому мой ответ не является окончательным, однако он не имеет никакого предела, установленного ... настолько бесконечным (в зависимости от системных ресурсов). Я запускаю свои приложения, используя uWSGI, у которого есть настраиваемый предел потока. – Paul Becotte 10 August 2016 в 17:26
Другие вопросы по тегам:

Похожие вопросы: