#python #python-2.7 #tornado
#python #python-2.7 #tornado
Вопрос:
В крупномасштабном приложении tornado мы используем shared 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
был ли достигнут порог и каково количество запросов в очереди, чтобы помочь нам увеличить его при необходимости?
Ответ №1:
В настоящее время нет поддерживаемого способа сделать это. Вы можете просмотреть детали реализации реализации AsyncHttpClient (без каких-либо гарантий относительно будущей совместимости) или обернуть объект AsyncHttpClient чем-то, что сохраняет количество ожидающих выборок.
Комментарии:
1. Спасибо @ben-darnell . На данный момент я нашел обходной путь, отслеживая
time_info.queue
объекты ответа (мы используем CurlAsyncHTTPClient)