在我的应用程序中,通过发出请求来更改公共对象的状态,响应取决于状态.
class SomeObj():
def __init__(self, param):
self.param = param
def query(self):
self.param += 1
return self.param
global_obj = SomeObj(0)
@app.route('/')
def home():
flash(global_obj.query())
render_template('index.html')
Run Code Online (Sandbox Code Playgroud)
如果我在我的开发服务器上运行它,我希望得到1,2,3等等.如果同时向100个不同的客户提出请求,可能出现问题吗?预期的结果是100个不同的客户端每个都看到1到100之间的唯一数字.或者会发生这样的事情:
self.param增加1.self.param再次递增.由于只有两个客户端,预期结果为1和2,而不是2和3.跳过了一个数字.
当我扩展我的应用程序时,这会发生吗?我应该看一下全局变量的替代方案?
我正在编写一个小型Flask应用程序,并使用pyRserve将其连接到Rserve.我希望每个会话都启动,然后维护自己的Rserve连接.
像这样的东西:
session['my_connection'] = pyRserve.connect()
Run Code Online (Sandbox Code Playgroud)
不起作用,因为连接对象不是JSON可序列化的.另一方面,这样的事情:
flask.g.my_connection = pyRserve.connect()
Run Code Online (Sandbox Code Playgroud)
不起作用,因为它不会在请求之间保持不变.为了增加难度,似乎pyRserve似乎没有为连接提供任何标识符,因此我无法在会话中存储连接ID,并在每次请求之前使用它来检索正确的连接.
有没有办法完成每个会话的唯一连接?