【问题标题】:Monitor tornado AsyncHTTPClient queue when max_clients is reached达到 max_clients 时监控龙卷风 AsyncHTTPClient 队列
【发布时间】:2020-10-06 10:48:59
【问题描述】:

在大型龙卷风应用程序中,我们使用共享 AsyncHTTPClient 来处理带有预设 max_clients 的传出请求。

http_client = tornado.httpclient.AsyncHTTPClient(max_clients=100)

class SomeHandler(tornado.web.RequestHandler):

    @tornado.gen.coroutine
    def get(self, *args, **kwargs):
        response = yield tornado.gen.Task(http_client.fetch, <some_url>, method='GET')
        ...

我想问的是,有没有办法在任何给定时间查看是否已达到max_clients 阈值以及队列中的请求数是多少,以帮助我们在需要时扩大它?

【问题讨论】:

    标签: python python-2.7 tornado


    【解决方案1】:

    目前没有支持的方式来执行此操作。您可以查看 AsyncHTTPClient 实现的实现细节(不保证未来的兼容性),或者用保持挂起获取计数的东西包装 AsyncHTTPClient 对象。

    【讨论】:

    • 谢谢@ben-darnell。我现在通过监视响应对象的time_info.queue 找到了一种解决方法(我们正在使用 CurlAsyncHTTPClient)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    相关资源
    最近更新 更多