python gevent 处理长阻塞操作

python gevent handling long blocking operations

我正在将 gevent 与 flask 和 pymongo 一起使用。我有一个 API 端点,我需要循环大量来自 pymongo 的结果来做一些 CPU 计算(速度平均值,地理坐标之间的距离,...)。

我想知道 gevent 是否提供了一些功能来处理这种长时间阻塞操作。看来我可以在我的循环中使用 gevent.sleep 来触发 greenlet 之间的上下文切换,但它看起来不是很干净。

使用 gevent.sleep(0) 屈服于集线器(上下文切换的意思)实际上是完全合法的,也是可行的方法。这很干净,文档中提到的方式 gevent doc.