이것은 내 코드 조각입니다. 오류가 발생하지 않고 많은 고객에게 서비스를 제공 할 수 있는지 묻습니다 (프로세스가 2
으로 제한 되었기 때문에).Flask의 ThreadPool
from multiprocessing.pool import ThreadPool
pool = ThreadPool(processes=2)
@app.route("/query/<lng>/<lat>/", methods=['GET', 'POST'])
def query(lng,lat):
t1 = pool.apply_async(queryA, (lng, lat))
t2 = pool.apply_async(queryB, (lng, lat))
results = {}
results['a'] = t1.get()
results['b'] = t2.get()
return dumps(results)
나는 이전에 함수 내부의 pool = ThreadPool(processes=2)
했다하지만 난 error: can't start new thread
가지고 :
def query(lng,lat):
pool = ThreadPool(processes=2)
#rest
내가 오류없이 동시에 1 개 이상의 고객 서비스를 제공 할 수 있는지 묻고 싶다을? 올바른 코드가 없다면 사용해야합니까?
pool
은 현재 전역이며 2 개의 동시 요청이있는 경우 제한을 초과합니다 (2x2 = 4 개의 실행 요청).
플라스크 개발 서버는 실제 사용을위한 것이 아닙니다. 여러 클라이언트를 제공해야하는 경우 플라스크 응용 프로그램을 웹 서버 뒤에 두십시오. 아파치, nginx, gunicorn .. 선택의 여지가 많습니다. – msvalkon
@msvalkon gunicorn으로 실행하십시오 – Diolor
그러면 해결하려는 문제는 정확히 무엇입니까? – msvalkon