복붙노트

[PYTHON] Flask 요청을 threaded = True와 동시에 처리합니다.

PYTHON

Flask 요청을 threaded = True와 동시에 처리합니다.

app.run ()에 threaded = True가 정확히 전달되면 어떻게됩니까?

내 응용 프로그램은 사용자로부터의 입력을 처리하고 그렇게하기 위해 약간의 시간이 필요합니다. 이 시간 동안 응용 프로그램은 다른 요청을 처리 할 수 ​​없습니다. 내 응용 프로그램을 threaded = True로 테스트했으며 여러 요청을 동시에 처리 할 수 ​​있습니다.

해결법

  1. ==============================

    1.Flask 1.0부터 Flask에 포함 된 WSGI 서버는 기본적으로 스레드 모드로 실행됩니다.

    Flask 1.0부터 Flask에 포함 된 WSGI 서버는 기본적으로 스레드 모드로 실행됩니다.

    1.0 이전 또는 스레딩을 비활성화 한 경우 서버는 단일 스레드 모드로 실행되며 한 번에 하나의 요청 만 처리 할 수 ​​있습니다. 모든 병렬 요청은 처리 할 수있을 때까지 기다려야하므로 요청에서 자신의 서버에 연결하려고 시도하면 문제가 발생할 수 있습니다.

    with threaded = True 요청은 새로운 스레드에서 각각 처리됩니다. 서버가 동시에 처리 할 수있는 스레드 수는 OS에 따라 다르며 프로세스 당 스레드 수를 제한하는 한계가 있습니다. 이 구현은 SocketServer.ThreadingMixIn 클래스를 사용합니다.이 클래스는 스핀 업 할 수있는 스레드 수에 제한을 설정하지 않습니다.

    플라스크 서버는 개발 전용으로 설계된 것입니다. 프로덕션 사용 가능 서버가 아닙니다. 더 넓은 웹에서 사이트를 운영하는 데 의존하지 마십시오. 대신 gunicorn 또는 uWSGI와 같은 적절한 WSGI 서버를 사용하십시오.

  2. ==============================

    2.이는 애플리케이션에 크게 의존합니다. 새로운 요청마다 스레드가 시작됩니다.이 스레드는 시스템에서 처리 할 수있는 스레드 수에 따라 달라집니다. 프로덕션 배포에서 uwsgi 제공과 같이 스레드 수를 제한하는 옵션이 표시되지 않습니다.

    이는 애플리케이션에 크게 의존합니다. 새로운 요청마다 스레드가 시작됩니다.이 스레드는 시스템에서 처리 할 수있는 스레드 수에 따라 달라집니다. 프로덕션 배포에서 uwsgi 제공과 같이 스레드 수를 제한하는 옵션이 표시되지 않습니다.

    단일 스레드에서 다중 스레드로 전환하면 동시성 버그가 발생할 수 있습니다 ...이 방법을 사용하면 전역 객체를 처리하는 방법에주의해야합니다 (설명서의 g 객체 참조).

  3. from https://stackoverflow.com/questions/38876721/handle-flask-requests-concurrently-with-threaded-true by cc-by-sa and MIT license