Python twisted.web的threading.local等效物?
在异步环境中,Python twisted.web的threading.local等效物?,python,twisted,twisted.web,Python,Twisted,Twisted.web,在异步环境中,threading.local不再保证是本地上下文,因为多个上下文可能共存于单个线程中。大多数异步框架(gevent、eventlet)都提供了get\u current\u context()功能来识别当前上下文。有些提供了一种monkey patch线程的方法。local因此它是“greenthreads”或其他特定于框架的上下文的本地。我在twisted文档中找不到这样的功能。如何做到这一点?我假设您需要此API以保存和检索每个请求的状态。如果没有,那么你可能想澄清你的问题
threading.local
不再保证是本地上下文,因为多个上下文可能共存于单个线程中。大多数异步框架(gevent、eventlet)都提供了get\u current\u context()
功能来识别当前上下文。有些提供了一种monkey patch线程的方法。local
因此它是“greenthreads”或其他特定于框架的上下文的本地。我在twisted文档中找不到这样的功能。如何做到这一点?我假设您需要此API以保存和检索每个请求的状态。如果没有,那么你可能想澄清你的问题
Twisted Web不提供与此相关的任何API。由于您可以控制请求的整个生命周期,所以您可以自己存储每个请求的任何状态:在Resource
实例上,在本地,在回调的参数中,等等。get\u current\u context
函数类似于使用全局函数跟踪状态的多线程功能。当你这样想的时候,希望有一个更明显的原因,你可能想考虑替代的解决方案。