python gevent处理长阻塞操作

时间:2016-01-14 08:40:10

标签: python flask gevent

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

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

1 个答案:

答案 0 :(得分:0)

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