如何在 Python Flask 项目中启用 Cloud Foundry 的粘性会话?
How to enable Cloud Foundry's sticky session in Python Flask project?
我正在使用 python 在 Cloud Foundry 中为 运行 开发应用程序。当我尝试扩展实例时,我发现客户端请求每次都以循环方式路由到不同的实例。但是,我的应用程序已将数据保存在会话中,这需要请求之间的一致性。
我找到了CloudFoundry的文档,其中引入了jsessionid使其保持一致。 https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html#sessions
这是我为测试粘性会话而编写的代码片段。但是即使我在 cookie 中放入一个 jsessionid 也不起作用。任何人都可以帮忙吗?谢谢
@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
终于成功了。唯一的区别是 cookie 是区分大小写的,并且应该是大写的。
resp.set_cookie('JSESSIONID', 'your secret here.')
我正在使用 python 在 Cloud Foundry 中为 运行 开发应用程序。当我尝试扩展实例时,我发现客户端请求每次都以循环方式路由到不同的实例。但是,我的应用程序已将数据保存在会话中,这需要请求之间的一致性。
我找到了CloudFoundry的文档,其中引入了jsessionid使其保持一致。 https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html#sessions
这是我为测试粘性会话而编写的代码片段。但是即使我在 cookie 中放入一个 jsessionid 也不起作用。任何人都可以帮忙吗?谢谢
@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
终于成功了。唯一的区别是 cookie 是区分大小写的,并且应该是大写的。
resp.set_cookie('JSESSIONID', 'your secret here.')