This commit is contained in:
+12
-12
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user