【发布时间】:2010-12-27 13:31:18
【问题描述】:
Django 世界中的每个人似乎都讨厌 threadlocals(http://code.djangoproject.com/ticket/4280, http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser)。我阅读了 Armin 关于此的文章 (http://lucumr.pocoo.org/2006/7/10/why-i-cant-stand-threadlocal-and-others),但其中大部分取决于 threadlocals 是不好的,因为它不优雅。
我有一个场景,theadlocals 会让事情变得更容易。 (我有一个应用程序,人们将拥有子域,因此所有模型都需要访问当前子域,并且从请求中传递它们是不值得的,如果 threadlocals 的唯一问题是它们不优雅,或者变得脆弱代码。)
还有很多 Java 框架似乎大量使用 threadlocals,那么它们的情况与 Python/Django 的情况有何不同?
【问题讨论】:
-
尝试在没有threadlocals的情况下实现子域多租户,我完全可以同情。在经历了一些严重的挫折之后,threadlocals 真的最终成为了唯一的出路。我读了反对他们的论据,但他们不够有力。我认为拒绝使用 threadlocals 是 Sites 框架在某些情况下如此无用的主要原因之一。如果他们想出如何以一种可以适应您和我正在使用的多租户类型的方式合法地解决code.djangoproject.com/ticket/15089,将会很有趣。
-
Django Cookbook 链接已损坏。论文链接也坏了 (possible replacement)。
标签: python django thread-local