[PYTHON] Flask 요청을 threaded = True와 동시에 처리합니다.
PYTHONFlask 요청을 threaded = True와 동시에 처리합니다.
app.run ()에 threaded = True가 정확히 전달되면 어떻게됩니까?
내 응용 프로그램은 사용자로부터의 입력을 처리하고 그렇게하기 위해 약간의 시간이 필요합니다. 이 시간 동안 응용 프로그램은 다른 요청을 처리 할 수 없습니다. 내 응용 프로그램을 threaded = True로 테스트했으며 여러 요청을 동시에 처리 할 수 있습니다.
해결법
-
==============================
1.Flask 1.0부터 Flask에 포함 된 WSGI 서버는 기본적으로 스레드 모드로 실행됩니다.
Flask 1.0부터 Flask에 포함 된 WSGI 서버는 기본적으로 스레드 모드로 실행됩니다.
1.0 이전 또는 스레딩을 비활성화 한 경우 서버는 단일 스레드 모드로 실행되며 한 번에 하나의 요청 만 처리 할 수 있습니다. 모든 병렬 요청은 처리 할 수있을 때까지 기다려야하므로 요청에서 자신의 서버에 연결하려고 시도하면 문제가 발생할 수 있습니다.
with threaded = True 요청은 새로운 스레드에서 각각 처리됩니다. 서버가 동시에 처리 할 수있는 스레드 수는 OS에 따라 다르며 프로세스 당 스레드 수를 제한하는 한계가 있습니다. 이 구현은 SocketServer.ThreadingMixIn 클래스를 사용합니다.이 클래스는 스핀 업 할 수있는 스레드 수에 제한을 설정하지 않습니다.
플라스크 서버는 개발 전용으로 설계된 것입니다. 프로덕션 사용 가능 서버가 아닙니다. 더 넓은 웹에서 사이트를 운영하는 데 의존하지 마십시오. 대신 gunicorn 또는 uWSGI와 같은 적절한 WSGI 서버를 사용하십시오.
-
==============================
2.이는 애플리케이션에 크게 의존합니다. 새로운 요청마다 스레드가 시작됩니다.이 스레드는 시스템에서 처리 할 수있는 스레드 수에 따라 달라집니다. 프로덕션 배포에서 uwsgi 제공과 같이 스레드 수를 제한하는 옵션이 표시되지 않습니다.
이는 애플리케이션에 크게 의존합니다. 새로운 요청마다 스레드가 시작됩니다.이 스레드는 시스템에서 처리 할 수있는 스레드 수에 따라 달라집니다. 프로덕션 배포에서 uwsgi 제공과 같이 스레드 수를 제한하는 옵션이 표시되지 않습니다.
단일 스레드에서 다중 스레드로 전환하면 동시성 버그가 발생할 수 있습니다 ...이 방법을 사용하면 전역 객체를 처리하는 방법에주의해야합니다 (설명서의 g 객체 참조).
from https://stackoverflow.com/questions/38876721/handle-flask-requests-concurrently-with-threaded-true by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Matplotlib yaxis 범위는 오프셋 값이 아닌 절대 값을 사용하여 표시됩니까? (0) | 2018.10.13 |
---|---|
[PYTHON] Homebrew + Mac OS X 10.8의 파이썬 : 치명적인 파이썬 오류 : PyThreadState_Get : mapnik을 가져 오는 현재 스레드가 없습니다. (0) | 2018.10.13 |
[PYTHON] Python에서 셀렌을 사용하여 경고가 있는지 확인하십시오. (0) | 2018.10.13 |
[PYTHON] 파이썬에서 list와 list [:]의 차이점은 무엇입니까? (0) | 2018.10.13 |
[PYTHON] 파이썬에서 for 루프 (0) | 2018.10.13 |