【问题标题】:threading.local equivalent for twisted.web?与twisted.web 等效的threading.local?
【发布时间】:2011-02-20 09:05:06
【问题描述】:

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

【问题讨论】:

    标签: python twisted twisted.web


    【解决方案1】:

    我假设您需要此 API 来保存和检索每个请求的状态。如果不是,那么您可能需要澄清您的问题。

    Twisted Web 不提供与这些相关的任何 API。由于您可以控制请求的整个生命周期,可能您可以自己存储任何每个请求的状态:在 Resource 实例上、在本地、在回调的参数中等等。 get_current_context 函数有点类似于使用全局变量来跟踪您的状态的多线程。当您以这种方式考虑时,希望您会更清楚为什么要考虑替代解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 2021-12-08
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多