【发布时间】:2023-03-27 09:18:01
【问题描述】:
我在 Django 应用程序中同时使用 PyMongo 和 gevent。在生产中,它托管在 Gunicorn 上。
我在我的应用程序启动时创建了一个连接对象。我有一些后台任务连续运行,每隔几秒执行一次数据库操作。
该应用程序还像任何 Django 应用程序一样处理 HTTP 请求。
我遇到的问题如下。它只发生在生产中,我无法在我的开发环境中重现它。当我让应用程序空闲一会儿(尽管后台任务仍在运行)时,在第一个 HTTP 请求(实际上是前几个)上,我执行的第一个“查找”操作永远不会完成。 greenlet 实际上永远不会恢复。这会导致前几个 HTTP 请求超时。
我该如何解决这个问题?这是 gevent 和/或 PyMongo 中的错误吗?
【问题讨论】:
-
你用的是什么版本的pymongo?
标签: python mongodb pymongo gevent greenlets