[ВОЛК] фикс ConnectionCls
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-01-10 18:16:47 +03:00
parent 538213eae9
commit 7608afa77b
+12 -12
View File
@@ -194,24 +194,24 @@ def _send_photo_sync(send_photo_url, image_data, caption, chat_id, disable_notif
session = requests.Session() session = requests.Session()
# Создаем кастомный HTTPAdapter с установкой socket timeout # Создаем кастомный HTTPAdapter с установкой socket timeout
# Используем максимальный timeout для всех операций (connect, read, write)
class CustomHTTPAdapter(HTTPAdapter): class CustomHTTPAdapter(HTTPAdapter):
def init_poolmanager(self, *args, **kwargs): def init_poolmanager(self, *args, **kwargs):
# Устанавливаем socket timeout через socket_options # Устанавливаем socket timeout через socket_options
# Это применяется ко всем операциям с сокетом (read и write)
socket_options = kwargs.get('socket_options', []) socket_options = kwargs.get('socket_options', [])
socket_options.append((socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)) socket_options.append((socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1))
kwargs['socket_options'] = socket_options kwargs['socket_options'] = socket_options
pool = super().init_poolmanager(*args, **kwargs)
# Устанавливаем socket timeout для всех соединений в пуле # Устанавливаем timeout для пула соединений
# Это применяется ко всем операциям с сокетом (read и write) # Используем максимальный таймаут для всех операций
original_connect = pool.ConnectionCls.connect max_timeout = max(connect_timeout, read_timeout, write_timeout)
def connect_with_timeout(self): if 'timeout' not in kwargs:
result = original_connect(self) kwargs['timeout'] = Urllib3Timeout(
if hasattr(self, 'sock') and self.sock: connect=connect_timeout,
self.sock.settimeout(write_timeout) read=max_timeout
return result )
pool.ConnectionCls.connect = connect_with_timeout
return pool return super().init_poolmanager(*args, **kwargs)
# Монтируем кастомный адаптер # Монтируем кастомный адаптер
adapter = CustomHTTPAdapter(max_retries=Retry(total=0)) adapter = CustomHTTPAdapter(max_retries=Retry(total=0))