在异步环境中,threading.local
不再保证是上下文本地的,因为几个上下文可能在单个线程中共存。大多数异步框架(gevent,eventlet)提供get_current_context()
功能来标识当前上下文。有些提供了一种方法来修补threading.local
,因此它是'greenthreads'或其他特定于框架的上下文的本地。我在扭曲的文档中找不到这样的功能。我该怎么做?
答案 0 :(得分:3)
我假设你想要这个API来保存和检索每个请求状态。如果没有,那么你可能想澄清你的问题。
Twisted Web不提供这些方面的任何API。由于您可以控制请求的完整生命周期,因此可能可以自行存储任何每个请求状态:在Resource
实例上,在本地中,在回调参数中,等等get_current_context
函数是使用全局变量跟踪状态的多线程等价物。当你以这种方式思考它时,希望你可能想要考虑替代解决方案更为明显。