From 7608afa77b3b4298cdbf782dfb1a3a8ea59454b7 Mon Sep 17 00:00:00 2001 From: gitadmin Date: Sat, 10 Jan 2026 18:16:47 +0300 Subject: [PATCH] =?UTF-8?q?[=D0=92=D0=9E=D0=9B=D0=9A]=20=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D1=81=20ConnectionCls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tg_publish.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tg_publish.py b/tg_publish.py index aff2ac5..3bdd85e 100644 --- a/tg_publish.py +++ b/tg_publish.py @@ -194,24 +194,24 @@ def _send_photo_sync(send_photo_url, image_data, caption, chat_id, disable_notif session = requests.Session() # Создаем кастомный HTTPAdapter с установкой socket timeout + # Используем максимальный timeout для всех операций (connect, read, write) class CustomHTTPAdapter(HTTPAdapter): def init_poolmanager(self, *args, **kwargs): # Устанавливаем socket timeout через socket_options - # Это применяется ко всем операциям с сокетом (read и write) socket_options = kwargs.get('socket_options', []) socket_options.append((socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)) kwargs['socket_options'] = socket_options - pool = super().init_poolmanager(*args, **kwargs) - # Устанавливаем socket timeout для всех соединений в пуле - # Это применяется ко всем операциям с сокетом (read и write) - original_connect = pool.ConnectionCls.connect - def connect_with_timeout(self): - result = original_connect(self) - if hasattr(self, 'sock') and self.sock: - self.sock.settimeout(write_timeout) - return result - pool.ConnectionCls.connect = connect_with_timeout - return pool + + # Устанавливаем timeout для пула соединений + # Используем максимальный таймаут для всех операций + max_timeout = max(connect_timeout, read_timeout, write_timeout) + if 'timeout' not in kwargs: + kwargs['timeout'] = Urllib3Timeout( + connect=connect_timeout, + read=max_timeout + ) + + return super().init_poolmanager(*args, **kwargs) # Монтируем кастомный адаптер adapter = CustomHTTPAdapter(max_retries=Retry(total=0))