gpt4 book ai didi

django - cherrypy 如何处理用户线程?

转载 作者:行者123 更新时间:2023-12-04 16:06:00 27 4
gpt4 key购买 nike

我正在开发一个 django 应用程序,我使用cherrypy作为服务器。 Cherrypy 为每个页面 View 创建一个新线程。我希望能够从它们中的任何一个中访问所有这些线程(负责与 django 对话的线程)。更具体地说,我希望能够从其中任何一个线程中访问每个线程的 thread_data。这可能吗?如果是这样,我该怎么做?

最佳答案

CherryPy 的 wsgiserver 不会为每个请求创建一个新线程——它使用一个池。这些工作线程中的每一个都是 threading.Thread 的子类,因此所有这些工作线程都应该可以通过 threading.enumerate() 访问。

但是,如果您专门讨论cherrypy.thread_data,那就是另外一回事了:threading.local。如果您使用的是最新版本的 Python,那么所有这些都是用 C 编码的,并且您(可能是正确的)无法从 Python 跨线程访问它。如果你真的需要它和真的知道你在做什么,最好的技术通常是在全局容器中附加对这些东西的额外引用,同时将它们插入到 thread_data 结构中。我推荐使用weakrefs 作为这些全局容器的键的字典——有足够多的Python ORM 将它们用于连接池(例如,参见我自己的Geniusql),您应该能够相当容易地学习如何实现它们。

关于django - cherrypy 如何处理用户线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/137950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com