, 나는 병이 요청을 동시에 처리 할 생각, 그래서 내가 우는 소리 테스트 코드를 작성 : 병은 병행 성이없는 요청을 처리합니까? 처음에는
import json
from bottle import Bottle, run, request, response, get, post
import time
app = Bottle()
NUMBERS = 0
@app.get("/test")
def test():
id = request.query.get('id', 0)
global NUMBERS
n = NUMBERS
time.sleep(0.2)
n += 1
NUMBERS = n
return id
@app.get("/status")
def status():
return json.dumps({"numbers": NUMBERS})
run(app, host='0.0.0.0', port=8000)
가 그럼 난 10 개 스레드
/test
URL을 요청하여 JMeter를 사용하여 20 회 반복합니다.
그 후 /status
은 병이 요청을 동시에 처리하지 않는 것 같아 {"numbers": 200}
을 제공합니다.
나는 오해 했습니까?
UPDATE 내가 다른 테스트를했다
, 나는 그것이 하나 (동시성에) 하나의 요청으로 그 병의 거래를 증명할 수 있다고 생각합니다. 나는 test
기능에 거의 변화했다 :
@app.get("/test")
def test():
t1 = time.time()
time.sleep(5)
t2 = time.time()
return {"t1": t1, "t2": t2}
을 그리고 브라우저에서 두 번 /test
에 액세스 할 때 내가 얻을 :
{
"t2": 1415941221.631711,
"t1": 1415941216.631761
}
{
"t2": 1415941226.643427,
"t1": 1415941221.643508
}
'200'은 OK 신호에 대한 HTTP 코드입니다. http : //www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – Nilesh
@Lafada 오, 더 명확하게 말하면,/상태는 나에게' { "numbers": 200}' – WKPlus
이제 적절한 답을 줄 수 있습니다. – Nilesh