0
웹 서비스에 대한 긴 요청을 시뮬레이트하기 위해 응답을 생성하는 동안 휴면 모드가 유지됩니다. dev 서버를 threaded=True
과 함께 실행하고 있습니다. 브라우저에서 세 개의 탭을 열면 첫 번째 스레드가 완료 될 때까지 두 번째 탭에 업데이트가 표시되지 않습니다. 그러나 두 번째 완료되기 전에 세 번째 탭 은으로 시작합니다. 나는 threaded=True
대신에 processes=4
을 사용하여 같은 것을 경험했다. 왜 다른 스레드가 처음으로 끝날 때까지 기다리는 것처럼 보입니까?스레드 모드의 Flask dev 서버는 여전히 첫 번째 스레드가 완료 될 때까지 대기합니다.
import sys
from flask import Flask, Response
PORT = 5002
SECONDS = 20
# create app
app = Flask(__name__)
app.config.from_object(__name__)
@app.route('/wait')
def wait():
def generate():
for i in range(SECONDS + 1):
if i == 0:
yield "<html><body>Getting data: <pre>"
import time
time.sleep(1)
if i < SECONDS:
print "tick"
yield "."
else:
yield "Finished after %ss.</pre></body></html>" % SECONDS
return Response(generate(), mimetype="text/html")
def runserver():
app.run(host='0.0.0.0', port=PORT, threaded=True)
if __name__ == '__main__':
runserver()