twisted.web的threading.local等价物?

时间:2010-05-17 11:43:46

标签: python twisted twisted.web

在异步环境中,threading.local不再保证是上下文本地的,因为几个上下文可能在单个线程中共存。大多数异步框架(gevent,eventlet)提供get_current_context()功能来标识当前上下文。有些提供了一种方法来修补threading.local,因此它是'greenthreads'或其他特定于框架的上下文的本地。我在扭曲的文档中找不到这样的功能。我该怎么做?

1 个答案:

答案 0 :(得分:3)

我假设你想要这个API来保存和检索每个请求状态。如果没有,那么你可能想澄清你的问题。

Twisted Web不提供这些方面的任何API。由于您可以控制请求的完整生命周期,因此可能可以自行存储任何每个请求状态:在Resource实例上,在本地中,在回调参数中,等等get_current_context函数是使用全局变量跟踪状态的多线程等价物。当你以这种方式思考它时,希望你可能想要考虑替代解决方案更为明显。