python - 限制 Tornado 中特定 View 的连接

标签 python tornado

我的 View 占用大量内存并且是异步的。我可以限制在处理程序函数内同时工作的连接数吗(比如内部有 N max workers 的关键部分)。

这在 Tornado 中可能吗?

喜欢:

@tornado.web.asynchronous
def get(self):
    with critical_section(count=5):
    # some code

谢谢

最佳答案

Toro提供类似于 Tornado 协程线程模块中的同步原语。您可以使用它的 BoundedSemaphore 来控制处理程序主体的入口:

# global semaphore
sem = toro.BoundedSemaphore(5)

@gen.coroutine
def get(self):
    with (yield sem.acquire()):
        # do work

关于python - 限制 Tornado 中特定 View 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19135253/

相关文章:

python - 设置 Knn 分类器的权重

python - Django、websockets、Tornado,如何让它们通信?

python-2.7 - python 2.7 的 Tornado 需要 asyncio,它只是 python 3+

python - Tornado 是否在请求结束时关闭连接?

python - bytearray 的二进制反转值

python - Django:如何在我的模板中有效显示数据?

python - 恒温器控制算法

python - 是否可以对具有 58 行、(时间序列)和 10467 列的大型 GDP 数据运行向量自回归分析?

python - 为什么Tornado中的AsyncHTTPClient不立即发送请求?

python - 从不同的tornado.RequestHandler实例访问/更新全局/共享defaultdict