我试图通过将每个字符串存储在自己的变量中并使用django.contrib.session来为每个会话缓存一组字符串。
我有以下代码:
import copy
def get_result(request, operation):
previous_result = request.session.get(operation.name)
if previous_result:
result = copy.deepcopy(previous_result)
else:
result = get_json_response(operation)
request.session[operation.name] = copy.deepcopy(result)
return result
get_result()是
此代码在我的本地环境中完美运行。但是,在安装了gevent和chausette的生产服务器中,它会失败。
大多数情况下,request.session.get(operation.name)将返回None,即使它不是第一次为该操作调用get_result时也是如此。在某些情况下,它会返回一个值,但在某些情况下,它不会返回。似乎没有任何模式,它什么时候起作用,并且不起作用。
我怀疑不一致是因为不同的线程在不同的状态引用会话变量。在这种情况下处理会话变量的正确方法是什么?