gpt4 book ai didi

database - 我可以让 Django "greenlet-safe"吗?

转载 作者:太空狗 更新时间:2023-10-30 01:49:02 24 4
gpt4 key购买 nike

大图是: 我想在一些执行异步 IO 的应用程序中使用 eventlet,同时在外部使用 Django 模型。在外部使用 Django 很简单(请参阅 Django: How can I use my model classes to interact with my database from outside Django? ),但这不是主要问题。

我认为(我还没有测试过)从 greenlets 使用 Django 是危险的。实际上,在 psycopg2 的情况下,我们有这个警告(参见 http://www.initd.org/psycopg/docs/advanced.html#support-to-coroutine-libraries ):

Psycopg connections are not green thread safe and can’t be used concurrently by different green threads

在 Django 中,每个线程有一个数据库连接(对吗?),因此在使用时可能会导致可怕的场景。是否可以以某种方式手动提供连接对象?或者将其设为“greenlet-local”?

我的动机是使用来自 eventlet (http://eventlet.net/doc/modules/db_pool.html) 的连接池,以便我可以加速我的 IO 绑定(bind)应用程序。

最佳答案

有一些项目可以使 Django 与 greenlet 一起工作。我会查看 psycogreen它使用 Psycopg >= 2.2 中的协程支持。有一篇关于将 gevent、gunicorn 和 psycogreen 与 Django 一起使用的好博文:http://dbinit.com/blog/going-green/ .

关于database - 我可以让 Django "greenlet-safe"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234803/

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