From 192bff014aef32a8e4adac71f13c2ff100ffb304 Mon Sep 17 00:00:00 2001 From: Noam Meltzer Date: Sat, 12 Aug 2017 15:19:12 +0300 Subject: [PATCH] Warn on small con_pool_size during custom initalization of Updater fixes #787 --- telegram/ext/updater.py | 11 +++++++++-- telegram/utils/request.py | 7 +++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/telegram/ext/updater.py b/telegram/ext/updater.py index 27d204b61d6..15111b52eb0 100644 --- a/telegram/ext/updater.py +++ b/telegram/ext/updater.py @@ -95,8 +95,16 @@ def __init__(self, if (token is not None) and (bot is not None): raise ValueError('`token` and `bot` are mutually exclusive') + self.logger = logging.getLogger(__name__) + + con_pool_size = workers + 4 + if bot is not None: self.bot = bot + if bot.request.con_pool_size < con_pool_size: + self.logger.warning( + 'Connection pool of Request object is smaller than optimal value (%s)', + con_pool_size) else: # we need a connection pool the size of: # * for each of the workers @@ -107,7 +115,7 @@ def __init__(self, if request_kwargs is None: request_kwargs = {} if 'con_pool_size' not in request_kwargs: - request_kwargs['con_pool_size'] = workers + 4 + request_kwargs['con_pool_size'] = con_pool_size self._request = Request(**request_kwargs) self.bot = Bot(token, base_url, request=self._request) self.user_sig_handler = user_sig_handler @@ -121,7 +129,6 @@ def __init__(self, workers=workers, exception_event=self.__exception_event) self.last_update_id = 0 - self.logger = logging.getLogger(__name__) self.running = False self.is_idle = False self.httpd = None diff --git a/telegram/utils/request.py b/telegram/utils/request.py index 574dd2c2fc1..2aea47741c4 100644 --- a/telegram/utils/request.py +++ b/telegram/utils/request.py @@ -86,6 +86,8 @@ def __init__(self, sockopts.append((socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 30)) sockopts.append((socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 8)) + self._con_pool_size = con_pool_size + kwargs = dict( maxsize=con_pool_size, cert_reqs='CERT_REQUIRED', @@ -126,6 +128,11 @@ def __init__(self, self._con_pool = mgr + @property + def con_pool_size(self): + """The size of the connection pool used.""" + return self._con_pool_size + def stop(self): self._con_pool.clear() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy