2016-03-22 3 views
1

Ich entwickle eine App, die mit Python in Cloud Foundry läuft. Als ich versuchte, die Instanzen zu skalieren, stellte ich fest, dass die Client-Anfrage jedes Mal round-robin an verschiedene Instanzen weitergeleitet wurde. Meine App hat jedoch Daten in der Sitzung aufbewahrt, was Konsistenz zwischen den Anforderungen erfordert.Wie kann die klebrige Sitzung von Cloud Foundry im Python Flask-Projekt aktiviert werden?

Ich habe das Dokument von CloudFoundry gefunden, welches die jsessionid einführt, um es konsistent zu machen. https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html#sessions

Hier sind die Code-Schnipsel, die ich schrieb, um die sticky-Sitzung zu testen. Aber es funktioniert nicht, selbst wenn ich ein Jsessionid in Cookie setze. Kann mir jemand weiterhelfen? Danke

@app.route('/') 
def sticky_session(): 
    ret = "VCAP_APPLICATION env var: <br/>" + os.getenv("VCAP_APPLICATION", "") + "<br/>" 
    ret += "<br/>" 
    ret += "Port: " + os.getenv('PORT', '5000') + "<br/>" 
    resp = make_response(ret) 
    resp.set_cookie('jsessionid', 'your secret here.') 
    session['test'] = 'test' 
    return resp 

Antwort

1

Es funktioniert schließlich. Der einzige Unterschied besteht darin, dass der Cookie die Groß-/Kleinschreibung unterscheidet und in Großbuchstaben geschrieben werden sollte.

resp.set_cookie('JSESSIONID', 'your secret here.') 
Verwandte Themen