Zuerst denke ich Flasche Anforderungen gleichzeitig behandelt, so schrieb ich dir Testcode:Behandelt Flasche Anfragen ohne Nebenläufigkeit?
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)
Dann benutze ich jmeter /test
url mit 10 Threads zu verlangen Schleifen 20-mal.
Danach /status
gibt mir {"numbers": 200}
, die wie diese Flasche scheint Anfragen nicht gleichzeitig behandelt.
Habe ich etwas falsch verstanden?
UPDATE
ich einen weiteren Test tat, ich glaube, es die Flasche Deal mit Anfragen einzeln (ohne Gleichzeitigkeit) nachweisen kann. Ich habe ein wenig Änderung der test
Funktion:
@app.get("/test")
def test():
t1 = time.time()
time.sleep(5)
t2 = time.time()
return {"t1": t1, "t2": t2}
Und wenn ich /test
zweimal in einem Browser zugreifen erhalte ich:
{
"t2": 1415941221.631711,
"t1": 1415941216.631761
}
{
"t2": 1415941226.643427,
"t1": 1415941221.643508
}
'200' ist HTTP-Code für OK-Signal http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – Nilesh
@Lafada Oh, lassen Sie mich es klarer machen,'/status' gibt mir ' {"numbers": 200} ' – WKPlus
Jetzt können wir die richtige Antwort geben :) – Nilesh