在编程中,我们可以使用全局变量来存储在整个程序执行期间保持不变的值。然而,在某些情况下,我们需要根据请求的持续时间设置全局变量。这可以通过以下方法实现:
threading.local
类来实现 TLS。import threading
class GlobalRequestVariables:
def __init__(self):
self._local = threading.local()
def set_duration(self, duration):
setattr(self._local, 'duration', duration)
def get_duration(self):
return getattr(self._local, 'duration', None)
class RequestDuration:
def __init__(self, duration):
self.duration = duration
def __enter__(self):
# 设置全局变量
global request_duration
request_duration = self.duration
def __exit__(self, exc_type, exc_value, traceback):
# 清除全局变量
global request_duration
request_duration = None
在实际应用中,可以将这两种方法结合使用,以满足不同场景的需求。例如,在 Web 应用程序中,可以将全局变量存储在用户会话中,或者使用中间件来设置和清除全局变量。
推荐的腾讯云相关产品:
产品介绍链接地址:https://cloud.tencent.com/product
领取专属 10元无门槛券
手把手带您无忧上云