一个请求中的Tornado存储上下文,还是获取当前请求处理程序?

时间:2015-08-14 09:52:43

标签: python tornado

我想知道Tornado中是否有类似HttpContext.Current.Server.Execute的内容,可以在一个请求中轻松地共享协同例程之间的上下文。或者,我可以只使用请求处理程序对象作为上下文,但我怎样才能获得当前的那个?

1 个答案:

答案 0 :(得分:3)

龙卷风不提供与flask.g相当的效果。像线程局部变量这样的东西在异步框架中不能正常工作,因为一切都在同一个线程上运行。

可以使用StackContext构建类似于线程局部变量的东西,但不鼓励这样做,因为它有很大的开销,而某些第三方库不能正确传播堆栈上下文。在大多数情况下,我建议明确地将您需要的信息传递给需要它的地方,而不是引入这种魔法。但是,如果您认为这是适合您情况的最佳解决方案,请参阅https://github.com/viewfinderco/viewfinder/blob/master/backend/base/context_local.py以获取示例。